一、问题描述
试图将 yarn 从 3.2.2 降级为1.22.21 ,发现无论怎样执行
npm install yarn@1.22.21
npm install -g yarn@1.22.21
乃至删除重装 Node 或 npm 、删除所有 npm cache,
yarn -v 回显的都是 3.2.2。
二、解决方案
说明yarn -v每次执行都会调用某个文件,而这个文件不在任何 npm cache 中。
随后发现,只要将根目录(C:/Users/{用户名}/)下的.yarnrc.yml 和.yarnrc删除即可。
这两个文件是原先 yarn:3.2.2 的配置文件,定义了 yarnPath
三、引申拓展
Yarn官方仓库下有 issue 提到了这一点:How to use yarn 1.22.19 instead of yarn 3.2.1? · Issue #8841 · yarnpkg/yarn (github.com)- 关于
.yarnrc.yml和.yarnrc:
.yarnrc.yml和.yarnrc文件是 Yarn 的配置文件。Yarn 是一个高效、可靠、安全的 JavaScript 包管理器,这两个文件可以用来配置 Yarn 的行为。这里我们一起看一下这两个文件的详细作用:
.yarnrc: 这是在 Yarn 1.x 版本中使用的配置文件,它是一个简单的 key-value 对的配置文件,用于存储全局配置信息,例如 registry 平台的地址、代理设置等。需要注意的是,.yarnrc不是一个 JSON 文件,也不支持注释。.yarnrc.yml: 在 Yarn 2.x+ 版本中,Yarn 选择了改用 YAML 格式作为它的配置文件格式,因此名字变成了.yarnrc.yml。YAML 格式方便用户进行更复杂的配置,并且支持注释,使得配置文件更易理解和管理。同样,.yarnrc.yml文件也是用于存储全局配置信息的地方,但它使用的是 YAML 语法。这两个文件通常位于项目的根目录下,用于配置当前项目的
Yarn行为。在用户的HOME目录下也可能有这两个文件,用于配置全局的 Yarn` 行为。