你必须知道的yarn
# # 你必须知道的yarn
yarn的起源 (opens new window) (opens new window)已经解释了为什么要创建一个新的javascript包管理器,这里笔者也推荐大家从npm切换为yarn。npm4就不说了,速度太慢了,npm5借鉴了很多yarn的机制,比如简单的版本锁、重写cache模块等,减少了与yarn的差距。但依然有些地方做的不如yarn,这篇文章 (opens new window) (opens new window)记录了npm5和yarn的实验对比,结论是:在没有缓存时,yarn和npm5速度差不多;在有缓存时,yarn比npm5快2倍。
# # yarn优势
以下针对npm5前:
yarn 离线安装。
下载的时候 Yarn 缓存了所有的包以至于不需要再次从网络下载yarn并行下载,使得时间更快。
通过并行操作最大限度地提高资源利用率,以至于再次下载的时候安装时间比之前更快。npm5之前是等上一个安装完后再执行下一个,串行下载。yarn锁包yarn-lock,保证引用包正确。
yarn.lock 文件准确的锁定了所有被下载和项目依赖的包版本。通过这个文件,你能确定你的工程师团队的每一位成员都能安装准确的包,并且可以更容易的部署,而没有意外 bug出现。
# # 指令
常用
yarn init
,初始化项目,相当于npm init。yarn install
简写为yarn ,相当于npm install(i),用来安装。
// 不生成 yarn.lock 鎖定文件,並且,如果需要更新則會失敗。
// 服务器上编译通常加该参数,以保证yarn-lock.json一致
yarn install --frozen-lockfile
1
2
3
4
2
3
4
yarn add
,安装模块,相当于npm install 。yarn run
,运行项目,相当于npm run。其他
yarn remove
,卸载模块,相当于npm uninstall(un)。yarn upgrade
,更新模块,相当于npm update。yarn link
这指令需要在你想要依赖的依赖包中执行,该指令会注册成功一个package名称yarn link [package]
这指令应用到你的项目包中
$ cd react
$ yarn link
success Registered "react".
1
2
3
4
2
3
4
$ cd ../react-relay
$ yarn link react
1
2
3
2
3
yarn bin
, 打印出执行脚本的位置,可以被yarn run执行。相当于npm binyarn login/yarn publish
npm登录和发布。相当于npm login/npm publishyarn cache clean
,清除缓存,相当于npm cache clean。yarn list
列出当前所有依赖的包yarn config list
显示所有配置设置
yarn config set version-git-tag 1.0.0
yarn config get version-git-tag
yarn config delete version-git-tag
1
2
3
4
2
3
4
# # 参考文章
编辑 (opens new window)