Yarn是一个新的Javascript包治理器,它由Facebook, Google, Exponent and Tilde开辟者共同开辟完成。Yarn 不是 NPM 的fork版本,而是它的从新设想,Yarn 定位为”疾速、牢靠、平安的依靠治理东西”,它的目的是处置惩罚团队开辟中运用 NPM 碰到的题目。
跟着 Yarn 的降生,越来越多的开辟者转向了 Yarn,那末 NPM 在开辟中有哪些题目,Yarn 是怎样处置惩罚的呢?
NPM 一些潜伏的题目:
- 嵌套依靠 (npm 3.0版本已修复)
- 串行装置
- 单一个 package 泉源(npmjs.com)
- 须要收集来装置软件包(只管我们能够建立一个暂时缓存)
- 许可顺序包在装置时运转代码(不利于平安性)
- 不肯定的包状况(不能肯定项目的一切副本运用雷同的包版本)
Yarn 处置惩罚方案:
- 单依靠包构造: 能够运用单一版本的依靠包,装置更疾速,占用磁盘空间更少
- 并行装置: 并行下载依靠包,削减下载时候
- 多个包泉源: Yarn 读取和装置 npmjs.com 和 Bower装置包,如果有个渠道down掉了,能够从另一个渠道下载包并装置
- 自动重试: 单个收集要求失利不会致使装置失利,要求在失利后会重试,这处置惩罚了因为暂时收集题目而发生的构建非常
- 兼容 NPM: 从 NPM 切换到 Yarn 不须要做特别兼容处置惩罚
- yarn.lock: 用来治理 javascript 包,这个关于开辟团队来讲多是最有用的功用了。 在package.json中,依靠的包版本能够被指定为一个局限,也能够不带版本号。这个可能会致使一种题目,团队内差别开辟职员运用差别版本的软件包。我们都晓得,复现环境的才能与完整相干的依靠关联关于高校的调试和新团队职员的融入至关重要。从包治理器(Bundler)中自创,Yarn 建立了 yarn.lock文件,用来纪录项目运用每一个包的确实版本。当将此文件提交至 SVN、GIT 等代码保护东西,能够保证项目的一切开辟职员同享一套依靠包的版本号。更多文章请关注微信民众号fedlab。
Yarn 的装置
brew install yarn
/* Yarn 团队不引荐 */
npm install -g yarn
差别平台装置体式格局各别,详细拜见install
NPM CLI vs Yarn CLI
- 初始化项目
npm init
yarn init
- 从 package.json 装置依靠
npm install
yarn
- 装置指定包到依靠或许开辟依靠
npm install --save [package]
yarn add [package]
npm install --save-dev [package]
yarn add [package] [--dev/-D]
- 装置包到全局
npm install --global [package]
yarn global add [package]
- 装置指定版本的包
npm install [package]@[version]
yarn add [package]@[version]
- 从新下载一切包
npm reubild
yarn install --force
- 卸载包
npm uninstall [package]
npm uninstall --save [package]
yarn remove [package]
npm uninstall --save-dev [package]
- 升级包
rm -rf node_modules && npm install
yarn upgrade
总结
比拟 NPM,Yarn处置惩罚了不肯定依靠、收集题目、并行下载等题目。但是 NPM 是本身胜利的牺牲品,跟着越来越多的开辟者转移运用 Yarn或许其他依靠平台,NPM 服务器能够更有用的运用。总之两个包治理器都很优异,这类互相的关联,使令着各自相互往更优异的方向行进,以惠及更多的开辟者。
感谢您的浏览
–eof–
作者[煦涵]
2017年05月13日
下面是「FED实验室」的微信民众号二维码,迎接长按、扫描关注: