corepack enable 不是项目初始化命令。它会在当前 Corepack 所在位置旁创建 pnpmpnpxyarn 等命令代理,也就是 shim。

因此它的作用范围是“当前 Node.js 安装”,而不是“当前项目”:

fnm use 20
corepack enable
 
fnm use 24
corepack enable

每个 Node.js 版本通常只需要执行一次。之后进入项目直接使用:

pnpm install
pnpm dev

如果切换 Node.js 版本后 pnpm --version 仍然正常,就不需要重复启用。只有命令缺失或 shim 被覆盖时,才需要再次运行 corepack enable

Corepack 如何选择 pnpm 版本

项目可以在 package.json 中固定包管理器:

{
  "packageManager": "pnpm@11.21.0"
}

Corepack 代理读取该字段,按需下载并运行对应版本。项目没有声明时,则使用 Corepack 配置的默认版本:

corepack install --global pnpm@11.21.0

Corepack 随 Node.js 14.19.0 至 24.x 分发,但从 Node.js 25 开始不再内置。使用 Node.js 25+ 时,需要先安装 Corepack,再启用 shim:

npm install --global corepack
corepack enable

参考:Corepack README