根据包装器,我们可以从支持的包管理器列表中指定包管理器。
但是,VS代码会抱怨值不正确。

我还尝试过以下值,这些值也会发出警告。
pnpmpnpm@6pnpm@6.0.0pnpm@^6.32.4@jonrsharpe,仍然是没有空格的警告

发布于 2022-07-01 07:07:16
packageManager字段需要匹配以下正则表达式
(npm|pnpm|yarn)@\d+\.\d+\.\d+(-.+)?和
"packageManager": "^pnpm@6.32.4"似乎解决了警告,但是,例如
"packageManager": "123!@#pnpm@6.32.4"同时满足正则表达式,这意味着前者可能无法按预期工作。
根据nodejs上的PR (deps:添加corepack #39608)
Corepack是怎么工作的? 源位于nodejs/corepack内部。要点是Corepack在Node二进制程序(就像npm和npx二进制文件已经发生的情况一样)旁边安装支持包管理器(二进制文件当前是pnpm、pnpx、纱线和yarnpkg,另外还有一个用于corepack本身的二进制文件)。因此,它们通过$PATH环境变量公开。一旦调用,这些跳线者就会查看本地文件夹,找到最上面的package.json,并从其中读取packageManager字段。视结果而定:
"pnpm": {
"default": "7.3.0",
...
}到目前为止,pnpm的默认版本是7.3.0,省略packageManager字段时使用它,所以最好设置
"packageManager": "pnpm@6.32.4"确保它按预期工作。
https://stackoverflow.com/questions/71747609
复制相似问题