Facebook刚刚推出了一款名叫Yarn的开源JavaScript包管理器,承诺比各大流行npm包的安装更可靠,且速度更快。根据你所选的工作包的不同,该公司称Yarn可以将安装时间从数分钟减少至几秒钟。Yarn还兼容nom注册表,但包安装方法有所区别。其使用了lockfiles和一个决定性安装算法,能够为参与一个项目的所有用户维持相同的节点模块(node_modules)目录结构,有助于减少难以追踪的bug和在多台机器上复制。
有何优势
缓存已经下载过的包,避免重复下载
下载前会检查签名及包的完整性
可靠可确定性,保证各平台依赖的一致性
网络优化,力求网络资源最大利用化,让资源下载完美队列执行,避免大量的无用请求,下载失败会自动重新请求,避免整个安装过程失败
扁平化模式,对于不匹配的依赖版本的包创立一个独立的包,避免创建重复的。笔者为此做过实验(当时加载某个项目 用了86秒,后面又用npm测试,用了 190秒,之后在用yarn.lock 的情况下,加载用了46秒)
安装下载
如何使用
跟npm
使用非常类似,以下是简要命令
-
yarn init
: 初始化,主要包含以下条目name: 项目名
version: 版本号
description: 项目简要描述
entry point: 文件入口,默认index.html
git repository: git仓库链接地址
author: 作者
license: 协议
-
yarn add [package]
: 添加依赖,自动安装最新版, 如安装React:yarn add react
yarn add [package]@[version]
: 指定版本号yarn add [package]@[tag]
: 指定标签
-
yarn upgrade [package]
: 更新依赖yarn upgrade [package]@[version]
: 更新到指定版本yarn upgrade [package]@[tag]
: 更新到指定标签版本
yarn remove [package]
: 移除依赖yarn install
或者yarn
: 加载全部依赖
国内特供
由于众所周知的原因,国内用yarn速度极慢,故推荐用镜像。
首先安装淘宝镜像,如果已经安装请直接下一步npm install -g cnpm --registry=https://registry.npm.taobao.org
其次cnpm install yarn tyarn -g --registry=https://registry.npm.taobao.org
然后就可以愉快的加载各种依赖包了,如:tyarn add antd-mobile
小结
yarn
管理器运行后会生成一个叫做yarn-lock
的文件,这个是用来检测依赖的正确性,
使依赖快速,可靠安装的。无需编辑,只需保留即可。
在其他电脑初始化时,如果存在package.json
和yarn-loack
,所有的依赖会以极快的速度加载完成(归功于yarn的缓存机制)
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。