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),性能显着提高。即插即用拒绝基于项目的node_modules文件夹的想法,该文件夹的文件数量通常会增长到天文数字的高度。您可以在官方即插即用白皮书中找到更多相关信息。我们使用 npm 安装eslint一次,然后使用 Yarn 安装一次,并在每种情况下预热缓存,以使速度差异明显(6 倍!):

