2017-04-23 21 views
2

我知道Yarn带来的好处以及它的功能npm没有。我有些疑惑但是:Yarn是npm上的包装吗?

  • 是否引擎盖一些保留相同的行为npm其他命令的下纱线使用npm
  • 如果不是,是否有理由为什么他们重​​新实施纱线,并有这种方法的缺点?
+2

https://code.facebook.com/posts/1840075619545360 – ceejayoz

+1

我不这么认为,它有一些类似的api,但引擎盖下有不同的设计。由于之前的api足够保留,所以实现了类似的api。 –

回答

4

不,这是一个重写。

我们没有继续在npm客户端周围建设基础设施,我们 决定尝试更全面地查看问题。 如果 取而代之我们试图建立一个新的客户端来解决我们遇到的核心问题 问题,我们正在经历?我们伦敦办事处的Sebastian McKenzie 开始抨击这个想法,我们很快就对 的潜力感到兴奋。

- https://code.facebook.com/posts/1840075619545360

它提供了相同的API(没有一些快捷键,如果你发现)。这是(我猜测),因为原始界面很简单,并确保采用。

它快得多,解决了npm的典型问题(主要是不确定性部署)。这只能通过自上而下的重写来实现,它们也改变了安装的方式(取,计算,下载,链接),因此逻辑是不同的。

这种方法的缺点是它需要大量的工作。通常情况下,你只是宣传主要的回购协议,但鉴于他们想要一个完全不同的东西,而Facebook有办法,他们决定单独进行。

另一个缺点是它的好处不会立即用于所有npm老用户,因为它不是升级版本,并且它不随节点安装。

+0

为什么纱线需要安装npm 4.6.1,并且与npm5不兼容,为什么我在使用纱线时需要npm,这不是矛盾吗?看看这个:https://github.com/yarnpkg/yarn/issues/4212 – stackdave

+0

这取决于安装方法,我相信。如果您使用brew进行安装,它可以有不同的要求。 – jsdario