文章列表
1 分钟阅读

pnpm 安装与使用指南


系列:开发环境管理

第 6 / 10 篇

  1. nvm 安装和使用教程
  2. uv 安装和使用教程
  3. pip 源的设置和使用
  4. uv 进阶:脚本、工作区与工具链实战
  5. pyenv 安装与使用指南
  6. pnpm 安装与使用指南
  7. Poetry 与 uv 对比:Python 项目管理怎么选
  8. direnv 使用指南:按目录自动加载环境变量
  9. Ruff 安装与使用指南
  10. GitHub CLI 使用指南:从 issue 到 PR 的命令行工作流

npm 能用,但在多项目和 workspace 场景里,pnpm 通常更省空间,也更不容易出现“幽灵依赖”。如果你已经用 nvm 安装和使用教程 固定了 Node 版本,下一步可以考虑把包管理也固定下来。

安装

Node 16.13 之后推荐用 Corepack:

Terminal window
corepack enable
corepack prepare pnpm@latest --activate
pnpm --version

如果项目里要固定版本,在 package.json 写:

{
"packageManager": "pnpm@10.0.0"
}

常用命令

Terminal window
pnpm install
pnpm add axios
pnpm add -D typescript
pnpm remove axios
pnpm run build
pnpm dlx create-vite

pnpm-lock.yaml 要提交。它和 package-lock.jsonuv.lock 的角色类似,都是为了让依赖安装可复现。

workspace

多包项目创建 pnpm-workspace.yaml

packages:
- apps/*
- packages/*

安装所有包依赖:

Terminal window
pnpm install

只在某个子包执行命令:

Terminal window
pnpm --filter web run dev

常见问题

如果某个包在 npm 下能跑,在 pnpm 下报找不到依赖,通常说明它依赖了没有声明在 package.json 里的包。pnpm 把这个问题暴露出来是好事,不是坏事。

CI 里建议用:

Terminal window
pnpm install --frozen-lockfile
pnpm run build

总结

pnpm 的价值在于依赖更干净、workspace 更顺、磁盘占用更低。个人项目可以先从 corepack enable 开始,团队项目则应该固定 packageManager 和 lockfile。更多细节参考 pnpm 官方文档