npm是Node.js的默认软件包管理器。 长期以来,Facebook一直在开发一种名为Yarn的替代软件包管理解决方案。 作为标准解决方案,Yarn似乎已从Github自述文件中逐渐消失,官方网站上的统计数据表明,只有一部分软件包是由Yarn执行的。 尽管如此,还是值得思考。
Yarn与现有的package.json文件完全兼容-因此您可以对现有项目使用这两种解决方案,而不会出现任何问题。 两种解决方案的命令仅略有不同。 这是最重要的命令的比较:
描述 | npm | 纱 |
初始化 | npm初始化 | 纱线初始化 |
更新资料 | npm install -g npm | 纱线自我更新 |
安装套件 | npm安装 --save [名称] | 纱线添加[名称] |
安装套件 | npm安装 --save-dev [名称] | 纱线添加 --dev [名称] |
全局安装软件包 | npm install -g [名称] | yarn global add [名称] |
安装所有软件包 | npm安装 | 纱线安装 |
更新所有软件包 | npm更新 | 纱线升级 |
卸载程序包 | npm删除[名称] | 纱线清除[名称] |
Yarn从解决npm的一些弱点开始。 最明显的区别是更高的性能:通过增量安装,多线程和最新的杀手级功能即插即用(PNP) ,性能急剧提高。 Plug'n'Play放弃了基于项目的node_modules文件夹的想法,该文件夹通常可以增长到天文数字的高度。 您可以在Plug'n'Play的官方白皮书中找到有关此内容的更多信息。 我们先在npm上安装一次eslint ,然后在每种情况下先将带有预热缓存的纱线安装起来,以使速度差异(6x!):