pnpm可直接替代npm,兼容所有命令和package.json规范,仅需清理node_modules与package-lock.json后执行pnpm install即可迁移;安装用npm install -g pnpm或brew install pnpm,验证用pnpm --version。

直接用 pnpm 替代 npm,不需要改代码、不重写脚本,核心是换安装方式和依赖结构——它兼容 npm 的所有命令和 package.json 规范,但底层更省空间、更快、更严谨。
安装 pnpm 并全局启用
只需一条命令即可完成安装:
- 用 npm 安装:npm install -g pnpm
- macOS 用户也可用 Homebrew:brew install pnpm
安装后,终端输入 pnpm --version 能正常输出版本号,说明已就绪。此后所有 npm install 都可替换为 pnpm install(或简写为 pnpm i)。
迁移现有项目:三步清空重装
老项目切换无需修改源码,重点是清理旧机制残留:
立即学习“Java免费学习笔记(深入)”;
- 删除 node_modules 目录
- 删除 package-lock.json(npm 锁文件)
- 运行 pnpm install —— 自动生成 pnpm-lock.yaml 和新的 node_modules 结构
注意:pnpm 不读取也不生成 package-lock.json,它只认自己的 lock 文件,混用会出错。
运行脚本和日常开发完全一致
package.json 中的 scripts 字段完全不用动:
- pnpm run dev 启动开发服务
- pnpm run build 执行构建
- pnpm test 运行测试
- 甚至支持 pnpm exec 直接调用本地 bin 工具,比如 pnpm exec eslint .
所有命令行为与 npm 100% 对齐,团队成员无需重新学习。
遇到兼容问题?谨慎开启提升模式
极少数老旧工具(如某些 Webpack 插件或 CLI)依赖扁平化 node_modules,会找不到间接依赖。此时可临时启用 shamefully-hoist:
- 在项目根目录创建 .pnpmrc 文件
- 写入一行:shamefully-hoist=true
- 再执行 pnpm install,依赖会被提升到 node_modules 顶层,行为更接近 npm/yarn
这不是推荐做法,仅作兜底;长期建议推动工具升级或改用 pnpm 原生友好的替代方案。


















