1. Corepack 机制
项目通过 Node.js 内置的 Corepack 实现 pnpm 版本自动管理。
关键配置在 package.json 中:
package.jsonLine 5
"packageManager": "pnpm@9.15.0",
2. 工作原理
- Corepack 已启用(Node.js 16.9+ 内置)
- 读取 package.json 中的 packageManager 字段
- 自动下载并使用指定的 pnpm 版本(如 pnpm@9.15.0)
- 如果版本不匹配,会自动切换
3. 相关配置
.npmrc 中的配置:
.npmrcLines 1-6
shared-workspace-shrinkwrap=true
link-workspace-packages=true
auto-install-peers=true
strict-peer-dependencies=false
enable-pre-post-scripts=true
engine-strict=true
engine-strict=true 会严格检查引擎版本。
4. 使用说明
当使用 nvm 切换 Node 版本后:
- 确保 Corepack 已启用: corepack enable
- 进入项目目录后,Corepack 会自动:
- 读取 package.json 中的 packageManager 字段
- 检查当前 pnpm 版本是否匹配
- 如果不匹配,自动下载并使用正确的版本
- 验证当前使用的版本: pnpm --version # 应该显示 9.15.0
5. 优势
- 版本一致性:团队使用相同的 pnpm 版本
- 自动管理:无需手动安装或切换
- 跨环境一致:不同 Node 版本下也能使用正确的 pnpm 版本
6. 注意事项
- 需要 Node.js 16.9+(当前为 v22.21.0,已满足)
- 首次使用需要运行 corepack enable 启用 Corepack
- 如果遇到问题,可以手动启用:corepack enable pnpm
总结:通过 package.json 中的 packageManager 字段配合 Corepack,实现 pnpm 版本的自动管理,无需手动切换。