系列:开发环境管理
npm 能用,但在多项目和 workspace 场景里,pnpm 通常更省空间,也更不容易出现“幽灵依赖”。如果你已经用 nvm 安装和使用教程 固定了 Node 版本,下一步可以考虑把包管理也固定下来。
安装
Node 16.13 之后推荐用 Corepack:
corepack enablecorepack prepare pnpm@latest --activatepnpm --version如果项目里要固定版本,在 package.json 写:
{ "packageManager": "pnpm@10.0.0"}常用命令
pnpm installpnpm add axiospnpm add -D typescriptpnpm remove axiospnpm run buildpnpm dlx create-vitepnpm-lock.yaml 要提交。它和 package-lock.json、uv.lock 的角色类似,都是为了让依赖安装可复现。
workspace
多包项目创建 pnpm-workspace.yaml:
packages: - apps/* - packages/*安装所有包依赖:
pnpm install只在某个子包执行命令:
pnpm --filter web run dev常见问题
如果某个包在 npm 下能跑,在 pnpm 下报找不到依赖,通常说明它依赖了没有声明在 package.json 里的包。pnpm 把这个问题暴露出来是好事,不是坏事。
CI 里建议用:
pnpm install --frozen-lockfilepnpm run build总结
pnpm 的价值在于依赖更干净、workspace 更顺、磁盘占用更低。个人项目可以先从 corepack enable 开始,团队项目则应该固定 packageManager 和 lockfile。更多细节参考 pnpm 官方文档。