Skip to content

pnpm

专题版块详见 pnpm 专题

特性/工具npmYarnpnpm
安装方式默认与 Node.js 一起安装需要单独安装,通常使用 npm install -g yarn需要单独安装,通常使用 npm install -g pnpm
缓存机制默认缓存,二次安装会加快速度有缓存机制,安装依赖时可以更快有强大的缓存机制,能够显著加速重复安装
安装速度较慢(npm 之前的版本)快于 npm,并行安装更快,采用硬链接和共享存储方式来加速安装
依赖管理package-lock.json 锁定依赖yarn.lock 锁定依赖pnpm-lock.yaml 锁定依赖
安装机制逐个安装依赖,node_modules 可能重复并行安装依赖,node_modules 结构更简洁使用硬链接和符号链接,在项目目录中共享依赖
安装重复依赖可能会重复安装相同版本的依赖相同的依赖不会重复安装不会重复安装相同版本的依赖,依赖共享机制
模块解析基于 node_modules 树状结构基于 node_modules 树状结构使用虚拟存储(软链接),不同项目间共享依赖
工作目录node_modules 文件夹node_modules 文件夹node_modules 文件夹(实际依赖通过符号链接)
工作方式基于包的扁平结构和 node_modules 文件夹使用并行安装,依赖管理更高效高效使用硬链接和软链接减少重复内容
兼容性npm 脚本完全兼容npm 兼容,部分命令行为略有不同npmYarn 大部分命令兼容,依赖管理有不同
工作空间npm 7+ 支持工作区(workspaces)支持工作区(workspaces)支持工作区(workspaces)
使用环境多用于传统的 npm 用户多用于需要高性能和稳定性的项目多用于希望减少冗余依赖的团队,适用于大型项目