如何正确地将 yarn 版本从3.2.2 降级为 1.x

866 阅读1分钟

一、问题描述

试图将 yarn3.2.2 降级为1.22.21 ,发现无论怎样执行
npm install yarn@1.22.21
npm install -g yarn@1.22.21

乃至删除重装 Nodenpm 、删除所有 npm cache,
yarn -v 回显的都是 3.2.2

二、解决方案

说明yarn -v每次执行都会调用某个文件,而这个文件不在任何 npm cache 中。
随后发现,只要将根目录(C:/Users/{用户名}/)下的.yarnrc.yml.yarnrc删除即可。

image.png

image.png

这两个文件是原先 yarn:3.2.2 的配置文件,定义了 yarnPath

三、引申拓展

  1. Yarn 官方仓库下有 issue 提到了这一点:How to use yarn 1.22.19 instead of yarn 3.2.1? · Issue #8841 · yarnpkg/yarn (github.com)
  2. 关于 .yarnrc.yml.yarnrc

.yarnrc.yml 和 .yarnrc 文件是 Yarn 的配置文件。Yarn 是一个高效、可靠、安全的 JavaScript 包管理器,这两个文件可以用来配置 Yarn 的行为。这里我们一起看一下这两个文件的详细作用:

  1. .yarnrc: 这是在 Yarn 1.x 版本中使用的配置文件,它是一个简单的 key-value 对的配置文件,用于存储全局配置信息,例如 registry 平台的地址、代理设置等。需要注意的是,.yarnrc 不是一个 JSON 文件,也不支持注释。
  2. .yarnrc.yml: 在 Yarn 2.x+ 版本中,Yarn 选择了改用 YAML 格式作为它的配置文件格式,因此名字变成了 .yarnrc.yml。YAML 格式方便用户进行更复杂的配置,并且支持注释,使得配置文件更易理解和管理。同样,.yarnrc.yml 文件也是用于存储全局配置信息的地方,但它使用的是 YAML 语法。

这两个文件通常位于项目的根目录下,用于配置当前项目的 Yarn 行为。在用户的HOME目录下也可能有这两个文件,用于配置全局的 Yarn` 行为。