npm 仍是 yarn ?

技术选型时这个问题老是困扰我,今天看到一篇文章,详细的解释了 npm 和 yarn 在性能,安全,支持性和使用难易度上的区别,看完以后这个问题终于有一个答案:node

若是你在乎速度和 UI,选 yarn,若是你是个保守派,选 npm 会更加合适。npm

文章地址:https://stackshare.io/stackups/npm-vs-yarn缓存

性能

不管是在无缓存项目中(没有 nodemodules 目录),仍是在有缓存项目中,yarn 都比 npm 快,2 分钟或十几秒,并且 yarn 还支持离线下载!(这主要是由于 yarn 支持并行下载包);安全

安全

yarn 和 npm 都采用了一些方法锁定包的依赖版本,以防止包的依赖错误,因此二者在这一点上是一样安全的,可是 yarn 多了一个「协议检查」的功能,使用 yarn licenses list 命令能够看到各个包的协议,其实没什么用。性能

支持性

yarn 是由 facebook 维护的,用来弥补 npm 的不足,而 npm 是由 Isaac Z. Schlueter 建立的一个开源的包管理器。二者的支持性其实差很少,可是更多人由于 yarn 的性能选择 yarn。除此以外,yarn 选择从多个包仓库下载包,例如 npmjs.combower,这让 yarn 会更可靠一些。code

使用难易度

  1. CLI 用户界面

yarn 的用户界面会更加简洁,但 npm 能够经过 -s 参数去执行静默执行。bower

  1. 用户体验

npm 和 yarn 在这方面差很少,不过 yarn 能够经过 yarn upgrade-interactive [--latest] 命令,开启一个手动选择包的交互界面。get

使用量

npm 在 Github 上有 17.1K 的 Star,而 yarn 的 Star 数为 35.6K,可是从使用量调研上看,yarn 要少不少。it