我已经意识到Yarn带来的好处以及npm
没有做到的好处。不过我确实有些疑惑:
npm
相同行为的其他一些命令,Yarn是否使用npm
? 答案 0 :(得分:5)
不,这是重写。
我们不是继续围绕npm客户端构建基础架构 决定尝试更全面地看待问题。 如果 相反,我们试图建立一个解决核心问题的新客户 我们遇到的问题? Sebastian McKenzie在伦敦办公室工作 开始攻击这个想法,我们很快就对它感到兴奋 潜力。
- https://code.facebook.com/posts/1840075619545360
它提供相同的API(如果您注意到,没有一些快捷方式)。这是(我猜),因为原始界面非常简单并且确保采用。
它更快,解决了npm的典型问题(主要是不确定性的部署)。这只能通过自上而下的重写来实现,它们还改变了deps的安装方式(获取,计算,下载,链接),因此逻辑不同。
这种方法的缺点是它需要大量的工作。通常情况下,你只会对主要的回购公关进行公关,但鉴于他们想要一个完全不同的东西而且Facebook有办法,他们决定单独进行。
另一个很大的缺点是它的好处不会立即为所有npm老用户提供,因为它不是升级版本,也不会安装节点。
答案 1 :(得分:0)
我查看了Yarn的源代码,发现为每个命令编写了自定义代码:https://github.com/yarnpkg/yarn/tree/master/src/cli/commands。
我认为这种方法的缺点是,在将来npm
添加新命令时,Yarn团队必须跟踪更改并手动实施。