pnpm 是一个高性能的包管理器,专门设计用于提高 JavaScript 项目的构建速度。它的名字来源于“Package Newport Manager”,但实际上这个名字并没有实际意义,只是用来作为项目的名称而已。与传统的 npm 和 Yarn 相比,pnpm 提供了更好的性能和资源利用效率。
pnpm 的主要特点:
- 共享存储: pnpm 使用全局存储来存储所有包的副本,这意味着每个包只被存储一次,从而减少了磁盘空间的占用。
- 链接共享: 当多个项目使用相同的包时,pnpm 会创建指向全局存储中的包的硬链接,这样可以显著减少磁盘空间的使用。
- 并行化: pnpm 支持并行安装依赖,这可以极大地加速安装过程。
- 确定性安装: 每次执行
pnpm install都会产生相同的结果,保证了部署的一致性和可预测性。 - 内存效率: 由于共享存储和链接共享机制,pnpm 对内存的使用也更为高效。
- 轻量级: pnpm 本身是一个非常小的应用程序,对系统的负载较小。
如何安装 pnpm:
你可以通过 npm 或者其他方式来安装 pnpm。以下是通过 npm 安装 pnpm 的方法:
npm install -g pnpm
基本命令:
pnpm init: 创建一个新的package.json文件。pnpm add <package>: 添加一个或多个包作为依赖。pnpm install: 安装package.json文件中列出的所有依赖。pnpm uninstall <package>: 移除一个或多个依赖。pnpm update <package>: 更新一个或多个依赖到其最新版本。pnpm outdated: 显示可以更新的依赖。pnpm run <script>: 运行package.json中定义的脚本。pnpm audit: 执行安全审计,检查已安装的依赖是否存在已知的安全漏洞。
示例用法:
安装依赖:
pnpm install <package-name>
更新依赖:
pnpm update <package-name>
清除缓存:
pnpm cache clean
其他高级特性:
- Workspaces: 支持多项目的工作区管理,类似于 npm 和 Yarn 的工作区特性。
- 锁定文件: 使用
pnpm-lock.yaml文件来锁定依赖的具体版本。 - 自定义安装路径: 可以将包安装在任何位置,而不仅仅是
node_modules目录下。