首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在packageManager中指定“package.json”

如何在packageManager中指定“package.json”
EN

Stack Overflow用户
提问于 2022-04-05 07:13:14
回答 3查看 4.8K关注 0票数 1

根据包装器,我们可以从支持的包管理器列表中指定包管理器。

但是,VS代码会抱怨值不正确。

我还尝试过以下值,这些值也会发出警告。

  • pnpm
  • pnpm@6
  • pnpm@6.0.0
  • pnpm@^6.32.4

@jonrsharpe,仍然是没有空格的警告

EN

Stack Overflow用户

发布于 2022-07-01 07:07:16

packageManager字段需要匹配以下正则表达式

代码语言:javascript
复制
(npm|pnpm|yarn)@\d+\.\d+\.\d+(-.+)?

代码语言:javascript
复制
"packageManager": "^pnpm@6.32.4"

似乎解决了警告,但是,例如

代码语言:javascript
复制
"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字段。视结果而定:

  • 如果不存在packageManager字段,则假定请求的版本是Corepack配置中的默认版本。
  • 如果存在packageManager字段,则将其用作请求的版本。

Corepack配置

代码语言:javascript
复制
"pnpm": {
  "default": "7.3.0",
  ...
}

到目前为止,pnpm的默认版本是7.3.0,省略packageManager字段时使用它,所以最好设置

代码语言:javascript
复制
"packageManager": "pnpm@6.32.4"

确保它按预期工作。

票数 1
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71747609

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档