这个项目能做什么
pnpm 是一款旨在提高速度和磁盘空间效率的包管理器。与在不同项目中重复依赖项的传统包管理器不同,pnpm 将所有文件存储在磁盘上的单个内容可寻址存储中,并使用硬链接或 reflinks 将其链接到项目的 node_modules 中。这种方法确保了如果多个项目使用同一个版本的包,该包仅被存储一次。
核心能力包括:
- 高效存储:仅将版本之间不同的文件添加到存储中,从而节省大量磁盘空间。
- 严格性:包只能访问其 package.json 中明确指定的依赖项。
- 确定性:利用 pnpm-lock.yaml 文件确保安装的一致性。
- Monorepo 支持:内置针对管理工作区(workspaces)而优化的功能。
- 运行时管理:可作为 Node.js 版本管理器使用。
- 跨平台:支持 Windows、Linux 和 macOS。
- 实验性 Rust 移植:包含用 Rust 编写的 CLI 移植版本 'pacquet'。
性能基准测试表明,pnpm 的速度最高可比 npm 和 Yarn classic 等替代方案快 2 倍。