何时使用纱线而不是NPM?有什么区别?更新:2018年3月(有点晚...)源语言来自Yehuda Katz的TL;DR:

2022-08-30 02:11:39

纱线和NPM有什么区别?在写这个问题的时候,我只能在互联网上找到一些文章,这些文章显示了像这样的NPM命令的Yarn等价性。

它们是否具有相同的功能(我知道Yarn进行本地缓存,看起来您只需要下载一次软件包),但除此之外,从NPM迁移到Yarn有什么好处吗?


答案 1

更新:2018年3月(有点晚...)

从版本 5 开始,npm

  • 生成一个名为“lockfile”的“lockfile”,它修复整个依赖关系树,就像纱线(或任何其他)锁定机制一样,package-lock.json
  • 工具已经制作完成
  • --save现在暗示为npm i
  • 更好的网络和缓存使用率

npm 5.7.0 进一步引入了在持续集成环境中更快地安装依赖项的命令,方法是仅安装 中找到的包(如果 和 未同步,则报告错误)。npm cipackage-lock.jsonpackage-lock.jsonpackage.json

就个人而言,我仍然使用.npm


源语言

我讨厌直接引用文档,但它们在解释为什么方面做得很好,足够简洁,以至于我不知道如何进一步总结这些想法。

主要:

  1. 你总是知道你在每台开发机器上都得到了同样的东西。

  2. 它拟合了不这样做的操作,并且npm

  3. 它可以更有效地利用网络。

  4. 它还可以更有效地利用其他系统资源(如RAM)。

人们的生产经验是什么?谁知道呢,这对公众来说是一个婴儿。

来自Yehuda Katz的TL;DR:

从一开始,Yarn lockfile就保证在同一存储库中重复运行yarn会产生相同的包。

其次,Yarn 尝试使用冷缓存(尤其是热缓存)具有良好的性能。

最后,Yarn将安全作为核心价值。

不错的博客文章

NPM vs Yarn Cheat Sheet” by Gant Laborde

项目中稍长的版本

快速:Yarn 会缓存它下载的每个包,因此它再也不需要了。它还并行化操作以最大限度地提高资源利用率,因此安装时间比以往更快。

可靠:Yarn 使用详细但简洁的 lockfile 格式和确定性安装算法,能够保证在一个系统上工作的安装在任何其他系统上的工作方式完全相同。

安全:Yarn使用校验和来验证每个已安装包的完整性,然后再执行其代码。

README.md

  • 离线模式:如果您之前安装了软件包,则可以在没有任何互联网连接的情况下再次安装它。
  • 确定性:无论安装顺序如何,相同的依赖项都将在每台计算机上以相同的方式安装。
  • 网络性能:Yarn有效地将请求排队并避免请求瀑布,以最大限度地提高网络利用率。
  • 多个注册表:从 npm 或 Bower 安装任何软件包,并保持软件包工作流程不变。
  • 网络恢复:单个请求失败不会导致安装失败。请求在失败时重试。
  • 平面模式:解决依赖项版本与单个版本的不匹配问题,以避免创建重复项。
  • 更多表情符号。

答案 2