【问题标题】:Node corepack is ignoring packageManager and won't let me set yarn versionNode corepack 忽略 packageManager 并且不允许我设置 yarn 版本
【发布时间】:2022-11-24 02:27:29
【问题描述】:

我克隆了一个使用 Yarn 1.x 的项目并试图运行它,但我找不到获得正确版本的 Yarn 的方法。我想我一定错过了什么。

评论终端会话:

# using node16.18.0
$ nvm use v16
Now using node v16.18.0 (npm v8.19.2)

# start with no yarn installed
$ yarn --version
zsh: command not found: yarn

# package.json has packageManager set for Yarn v1.22.19
$ cat package.json | grep packageManager
  "packageManager": "yarn@1.22.19"

# enable corepack, and it ignores the packageManager version
$ corepack enable
$ yarn --version
3.2.4

# manually ask corepack to use v1.22.19, but it again ignores this
$ corepack prepare yarn@1.22.19 --activate
Preparing yarn@1.22.19 for immediate activation...
$ yarn --version
3.2.4

# manually ask corepack to run yarn 1.22.19, but it again ignores it
$ corepack yarn@1.22.19 --version
3.2.4

所以使用 Corepack 我似乎无法说服它使用 Yarn 版本。

此外,使用npm install -g 安装似乎也无法正常工作。

# disable corepack so there's no yarn installed
$ corepack disable
$ yarn --version
zsh: command not found: yarn

# install yarn v1.22.19
$ npm install -g yarn@1.22.19

added 1 package, and audited 2 packages in 326ms

found 0 vulnerabilities

# somehow it's installed 3.2.4 again
$ yarn --version
3.2.4

【问题讨论】:

  • which yarn 返回什么?
  • @mrienstra 对我来说它返回全局纱线(.nvm/versions/node/...)

标签: node.js yarnpkg corepack


【解决方案1】:

这没有解决 corepack 问题,但我已经能够让 npm install -g yarn@1.22.19 工作。我找到了一个文件~/.yarnrc.yml,里面有一个版本 3.2.4。我不确定 npm yarn 版本是否真的不正确,或者它是否只是错误地使用了 ~/.yarnrc.yml 作为其真实来源。但是,无论我何时删除此文件并以所需版本全局重新安装yarn,它都可以正常工作。

【讨论】:

    【解决方案2】:

    我最近遇到了类似的问题。但设法修复它。 (我不知道这是否是正确的做法,但至少它对我有用)

    which yarn 将返回 ~/.nvm/versions/node/v18.12.1/bin/yarnyarn --version 将返回 3.2.4,即使在执行与您完全相同的操作之后也是如此。 (在我的例子中尝试安装和使用 yarn 1.22.11

    然后我想我会检查我的主文件夹 ~ 并发现那里有一个 .yarn 文件夹和 .yarnrc.yml 文件,即使我应该卸载了纱线的每个全局安装。

    删除这个 ~/.yarn 文件夹和 ~/.yarnrc.yml 文件解决了我的问题,我能够按预期使用 yarn 1.22.11corepack也不再无视我的命令了?

    希望这也适用于您。

    【讨论】:

      猜你喜欢
      • 2019-01-07
      • 1970-01-01
      • 2022-10-05
      • 1970-01-01
      • 2022-01-02
      • 1970-01-01
      • 1970-01-01
      • 2022-11-03
      • 1970-01-01
      相关资源
      最近更新 更多