在 Windows 下载的 Node.js(官方 MSI 安装包)里其实已经 自带 corepack,但它不像 npm 那样作为全局包列出来,所以 npm list -g 看不到,corepack 是作为 Node 内置二进制工具提供的,不是通过 npm 安装的。在大多数 Linux 发行版(尤其是 NodeSource、系统包管理器 apt/yum 等)安装的 Node.js,会把 corepack 打包成 npm 全局可见的工具,就像 npm 本身一样。

corepack enable 的作用

举个例子

假设你启用了 corepack:

corepack enable

然后在项目里执行:

pnpm install

过程

  1. 你敲的 pnpm → 实际上是 corepack 的 shim。
  2. corepack 读 package.json,看到 "packageManager": "[email protected]"
  3. 如果本地没有 10.15.1,它会去下载缓存这个版本。
  4. 最后用 [email protected] 来跑 install

这样所有人都跑在相同版本的 pnpm 下。