我知道Yarn带来的好处以及它的功能npm
没有。我有些疑惑但是:Yarn是npm上的包装吗?
- 是否引擎盖一些保留相同的行为
npm
其他命令的下纱线使用npm
? - 如果不是,是否有理由为什么他们重新实施纱线,并有这种方法的缺点?
我知道Yarn带来的好处以及它的功能npm
没有。我有些疑惑但是:Yarn是npm上的包装吗?
npm
其他命令的下纱线使用npm
?不,这是一个重写。
我们没有继续在npm客户端周围建设基础设施,我们 决定尝试更全面地查看问题。 如果 取而代之我们试图建立一个新的客户端来解决我们遇到的核心问题 问题,我们正在经历?我们伦敦办事处的Sebastian McKenzie 开始抨击这个想法,我们很快就对 的潜力感到兴奋。
- https://code.facebook.com/posts/1840075619545360
它提供了相同的API(没有一些快捷键,如果你发现)。这是(我猜测),因为原始界面很简单,并确保采用。
它快得多,解决了npm的典型问题(主要是不确定性部署)。这只能通过自上而下的重写来实现,它们也改变了安装的方式(取,计算,下载,链接),因此逻辑是不同的。
这种方法的缺点是它需要大量的工作。通常情况下,你只是宣传主要的回购协议,但鉴于他们想要一个完全不同的东西,而Facebook有办法,他们决定单独进行。
另一个缺点是它的好处不会立即用于所有npm老用户,因为它不是升级版本,并且它不随节点安装。
我看了看Yarn的源代码,发现为每个命令都写了自定义代码:https://github.com/yarnpkg/yarn/tree/master/src/cli/commands。
我想这种方法的缺点是,在将来当npm
添加新命令时,Yarn团队将不得不跟踪更改并手动实现它们。
https://code.facebook.com/posts/1840075619545360 – ceejayoz
我不这么认为,它有一些类似的api,但引擎盖下有不同的设计。由于之前的api足够保留,所以实现了类似的api。 –