在npm v5.0中还没有什么纱线功能?

时间:2017-05-29 13:39:52

标签: node.js npm yarnpkg

npm v5.0带来了纱线中目前存在的许多功能,包括:

  • 默认情况下安装--save
  • package-lock.json将自动创建(我假设锁定文件可确保一致的安装)
  • 自动回退到离线模式

根据我的理解,纱线提供的另外还有并行下载(因此下载时间更快)。我没有在npm blog post中看到这一点。除此之外,仍然使用纱线还有其他好处吗?

2 个答案:

答案 0 :(得分:7)

在写作时,纱线仍然比npm略快。 Thomas Schaaf基于表现制作了comparison,可以直接查看here。目前,Yarn在每次测量时都会击败npm,尽管不是很大。这可能来自并行下载和高级缓存,尽管这纯粹是猜想,我还没有在源头进行任何挖掘,以找出时机不同的原因。

然而,你在性能上失去了什么,你获得了兼容性。有一些软件包无法正确安装Yarn,例如semantic-ui,因此您无论如何都需要使用npm。

由于npm是 规范环境的规范包管理器,因此大多数包都已经过测试,可以使用npm。对于Yarn来说,它仍然是一个相对的局外人。

总的来说,我认为npm @ 5比它的前辈要好得多,而且我认为转回"是合理的。除非Yarn为表格带来了新功能,特别是如果与所有包的兼容性对您来说很重要。

答案 1 :(得分:2)

这是一个很好的问题!

确实npm推出了yarn提供的所有功能。现在他们几乎是一样的:

  1. 缓存完全被重写,它甚至可以脱机工作
  2. --save默认启用
  3. package-lock.json会锁定您的版本,并且不像npm shrinkwrap
  4. 那样是可选的

    npm@5在速度方面也取得了很好的进展,但yarn仍然更快。这是简单的数字。让我们用vue-starter测试它,它有大约850个软件包可供下载。 npm时间在新赛季的42秒内一点也不差。缓存准备就绪后,安装所有内容只需30秒。

    yarn相比:没有缓存35秒,缓存就位20秒。对我来说,这个时间差距非常重要,仍然可以使用yarn作为主要工具。

    实际上,我写了一篇涵盖所有这些主题的文章:https://medium.com/wemake-services/is-yarn-still-a-thing-3c6886410c83