1

Facebook刚刚推出了一款名叫Yarn的开源JavaScript包管理器,承诺比各大流行npm包的安装更可靠,且速度更快。根据你所选的工作包的不同,该公司称Yarn可以将安装时间从数分钟减少至几秒钟。Yarn还兼容nom注册表,但包安装方法有所区别。其使用了lockfiles和一个决定性安装算法,能够为参与一个项目的所有用户维持相同的节点模块(node_modules)目录结构,有助于减少难以追踪的bug和在多台机器上复制。

有何优势

  1. 缓存已经下载过的包,避免重复下载

  2. 下载前会检查签名及包的完整性

  3. 可靠可确定性,保证各平台依赖的一致性

  4. 网络优化,力求网络资源最大利用化,让资源下载完美队列执行,避免大量的无用请求,下载失败会自动重新请求,避免整个安装过程失败

  5. 扁平化模式,对于不匹配的依赖版本的包创立一个独立的包,避免创建重复的。笔者为此做过实验(当时加载某个项目 用了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.jsonyarn-loack,所有的依赖会以极快的速度加载完成(归功于yarn的缓存机制)


minooo
1k 声望113 粉丝

专注前端,专注React。