Node.js 官方内置的包管理工具代理,从 Node.js 16.13+ 开始内置,默认禁用。用于简化和管理 pnpm、yarn 等包管理工具的安装和版本控制。
核心功能
- 自动管理 pnpm、yarn 版本,无需手动全局安装
- 确保不同项目使用不同的包管理器版本,避免团队版本不一致
- 允许在
package.json中声明包管理器版本- 避免全局安装 pnpm/yarn,提升安全性
基本使用
# 启用 corepack(默认禁用)
corepack enable
# 检查版本
corepack --version
# 安装特定版本的包管理器
corepack prepare yarn@3.2.1 --activate
# 更新 corepack
corepack update指定项目包管理器版本
在 package.json 中声明:
{
"packageManager": "yarn@3.2.1"
}声明后,在该项目执行 yarn 时,corepack 会自动使用 yarn@3.2.1,即使系统没有全局安装该版本。
# 直接应用当前使用的包管理器版本到 package.json
corepack use工具边界
- corepack 是版本代理,不是包管理器本身
- 主要管理 yarn 和 pnpm,npm 版本管理通过 nvm/n 来做
- 适合团队项目统一包管理器版本,CI/CD 环境特别有用
踩坑点
- Node.js 16.13+ 内置但默认禁用,必须先
corepack enable corepack enable后 yarn/pnpm 命令会被代理,首次使用会自动下载对应版本- 与 nvm 共用时,每次切换 Node.js 版本后需重新
corepack enable