pnpm是 Node.js 的替代包管理器。它是 npm 的直接替代品,但速度更快、效率更高。
为什么更有效率?当你安装一个包时,我们将它保存在你电脑上的全局存储中,然后我们从它创建一个硬链接而不是复制。也就是说:对于模块的每个版本,磁盘上只保留一份副本。例如,当使用 npm 或 yarn 时,如果您有 100 个使用 lodash 的包,您将在磁盘上拥有 100 个 lodash 副本。Pnpm 可以让你节省千兆字节的磁盘空间!
为什么不是 yarn ?
事实上 yarn 只是对 npm 的一个小改进。尽管它使安装速度更快并且具有一些不错的新功能,但它却使用了和 npm 相同的扁平化 node_modules 结构。
扁平化的 node_modules 结构带来了很多问题:
1.模块可以访问它们不依赖(没有进行声明)的包 (这极其不合理!)
2.扁平化依赖的算法非常复杂
3.一些包必须复制到一个项目的 node_modules 文件夹中(太浪费空间了!)
截至目前,pnpm 具有 yarn 优于 npm 的所有优点(是的,是所有):
1.安全: 与 Yarn 一样,pnpm 有一个特殊文件,其中包含所有已安装包的校验和,用于在执行其代码之前验证每个已安装包的完整性。
2.离线模式: pnpm 将所有下载的包 tarball 保存在本地注册表镜像中。当包在本地可用时,它从不发出请求。使用该--offline
参数,可以完全