煦涵说Yarn

Yarn是一个新的Javascript包管理器,它由Facebook, Google, Exponent and Tilde开发者共同开发完成。Yarn 不是 NPM 的fork版本,而是它的从新设计,Yarn 定位为"快速、可靠、安全的依赖管理工具",它的目标是解决团队开发中使用 NPM 遇到的问题。javascript

图片描述

随着 Yarn 的诞生,愈来愈多的开发者转向了 Yarn,那么 NPM 在开发中有哪些问题,Yarn 是如何解决的呢?
NPM 一些潜在的问题:java

  • 嵌套依赖 (npm 3.0版本已修复)
  • 串行安装
  • 单一个 package 来源(npmjs.com)
  • 须要网络来安装软件包(尽管咱们能够建立一个临时缓存)
  • 容许程序包在安装时运行代码(不利于安全性)
  • 不肯定的包状态(不能肯定项目的全部副本使用相同的包版本)

Yarn 解决方案:node

  • 单依赖包结构: 可使用单一版本的依赖包,安装更快速,占用磁盘空间更少
  • 并行安装: 并行下载依赖包,减小下载时间
  • 多个包来源: 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

不一样平台安装方式各异,具体参见installnpm

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 服务器能够更有效的使用。总之两个包管理器都很优秀,这种相互的关系,驱使着各自彼此往更优秀的方向前进,以惠及更多的开发者。json

感谢您的阅读缓存

--eof--安全

做者[煦涵]
2017年05月13日服务器

下面是「FED实验室」的微信公众号二维码,欢迎长按、扫描关注:
关注FED实验室微信

相关文章
相关标签/搜索