Node corepack 忽略 packageManager 并且不允许我设置纱线版本

Cal*_*m M 7 node.js yarnpkg corepack

我克隆了一个使用 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
Run Code Online (Sandbox Code Playgroud)

因此,使用 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
Run Code Online (Sandbox Code Playgroud)

Mat*_* R. 12

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

which yarn会返回~/.nvm/versions/node/v18.12.1/bin/yarnyarn --version返回3.2.4,即使在做了与您完全相同的事情之后也是如此。(尝试安装和使用yarn 1.22.19

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

删除此~/.yarn文件夹和~/.yarnrc.yml文件解决了我的问题,我能够1.22.19按预期使用纱线。corepack也不再无视我的命令

希望这也适合你。


Cal*_*m M 5

这并没有解决corepack问题,但我已经能够开始npm install -g yarn@1.22.19工作了。我找到了一个文件~/.yarnrc.yml,其中包含版本 3.2.4。我不确定npm纱线版本是否实际上不正确,或者它是否只是~/.yarnrc.yml错误地用作其事实来源。但无论我什么时候删除这个文件并yarn以所需的版本全局重新安装,它都可以正常工作。