目录
[隐藏]
什么是 yarn?
简单来说,yarn 是一个与 npm 功能相同的工具,用于前端项目的依赖管理。在使用 npm 的项目中,使用 npm 命令的地方都可以使用 yran 来代替。
为什么要使用 yarn 替代 npm 呢?yarn 相对 npm 来说,主要的特点有:
- 离线、并行安装:依赖并行安装,缓存已下载过的依赖并优先使用,各种优化使得安装依赖速度显著提升
- 确定性:默认生成 yarn.lock 文件,可以保证各开发人员开发安装依赖的目录具有一致性
- more…
好吧,其实 npm 也在不断的优化改进中。但 yarn 确实有很多亮点,至少当前是非常值得你去使用的。
yarn 使用快速上手
安装
虽然安装 yarn 可以不依赖 npm,但这里还是建议你使用 npm 来安装吧,快速而简洁:
1 | npm i -g yarn |
在项目中使用
首次初始化项目时执行,在每次项目启动/构建之前,也都应执行一次,以保证本地依赖得到及时更新。
该命令会检查 package.json 和 yarn.lock 文件中的依赖,当有其内容更新,会进行依赖更新安装。
1 | yarn < install > |
依赖更新。当你希望更新依赖模块到其最新版本时执行该命令。
1 | yarn upgrade |
yarn 常用命令
开始新项目
1 | yarn init |
添加依赖包
1 | yarn add [package] |
2 | yarn add [package]@[version] |
3 | yarn add [package]@[tag] |
升级依赖包
1 | yarn upgrade [package] |
2 | yarn upgrade [package]@[version] |
3 | yarn upgrade [package]@[tag] |
移除依赖包
1 | yarn remove [package] |
安装项目的全部依赖
1 | yarn |
或者
1 | yarn install |
yarn 使用实践建议
我们选择 yarn 的主要原因是依赖安装速度快,默认生成的 yarn.lock
会保证所有成员的模块依赖目录能够很好的保持一致。
yarn install
和 yarn upgrade
的执行逻辑,可以让你可以很清晰的管理本地依赖的版本更新时机,又能很好的让所有开发人员的本地依赖保持一致性。
使用 npm install
则有些乱,当你不想写死版本号依赖时,它总会安装依赖包最新可用的版本,但这在有时候并不是你想要的。
在 yarn 之前,我们使用的是 npm+淘宝仓库
方案,也会使用 cnpm。在国内,cnpm 的依赖安装速度比 yarn 还要快,但 cnpm 在 windows 下通过创建链接引用的方式管理包依赖,可能会带来一些问题。
现在我们会默认使用淘宝仓库,使用 npm 管理全局依赖,使用 yarn 管理具体项目内的依赖。
在一个新的项目中使用 yarn,我们会这么来做:
- 写好
package.json
,写入初始的第三方依赖 - 执行
yarn
命令,初始化安装项目依赖,生成yarn.lock
文件 - 后续通过执行
yarn add xxx
添加更多需要的依赖(也可直接在 package.json 文件中写入) - 当确定需要更新依赖模块到其最新版本时,执行
yarn upgrade
命令 - 配置项目启动命令执行前,先执行
yarn
命令,以保证当yarn.lock
被更新时,本地依赖也及时得到更新。例如,在package.json
的script
部分中配置start
命令:"start": "yarn && yarn run build:dev"
你是如何来使用 yarn 的呢?欢迎分享你的经验。
相关参考
- npm https://docs.npmjs.com
- yarn https://yarnpkg.com