在 Windows 下载的 Node.js(官方 MSI 安装包)里其实已经 自带 corepack,但它不像 npm 那样作为全局包列出来,所以 npm list -g 看不到,corepack 是作为 Node 内置二进制工具提供的,不是通过 npm 安装的。在大多数 Linux 发行版(尤其是 NodeSource、系统包管理器 apt/yum 等)安装的 Node.js,会把 corepack 打包成 npm 全局可见的工具,就像 npm 本身一样。
corepack enable 的作用corepack enable = 全量启用(pnpm + yarn 全开)。corepack enable pnpm = 只启用 pnpm。pnpm / yarn 命令。
packageManager 字段,然后下载/调用正确版本的包管理器。pnpm/yarn 命令在终端里是不可用的(除非你自己手动装过)。它会根据 package.json 里写的:
"packageManager": "[email protected]"
来确保安装和使用的 pnpm 版本是 10.15.1。
如果你项目需要升级,比如改成 [email protected],团队成员只要 corepack install 一下就能切换到新版本。
pnpm 版本完全一致,不会因为“某人升级了全局 pnpm”导致 lockfile 改变。假设你启用了 corepack:
corepack enable
然后在项目里执行:
pnpm install
过程:
pnpm → 实际上是 corepack 的 shim。package.json,看到 "packageManager": "[email protected]"。[email protected] 来跑 install。这样所有人都跑在相同版本的 pnpm 下。