yarn --version命令报错:internal/modules/cjs/loader.js throw err

922 阅读1分钟

报错截图: image.png

问题背景:

  1. 先装了nodejs16.14,因为版本太高然后又卸载了重装nodejs13.14
  2. 先装了yarn3,因为版本太高然后又想重新用yarn1

重装nodejs13.14后,再次执行npm i -g yarn,依然报这个错。从报错信息看,是internal/modules/cjs/loader.js这个文件查找yarn这个可执行文件的路径不对。那internal/modules/cjs/loader.js这个文件又是怎么知道去'C:\Users\aaa\.yarn\releases\yarn-3.1.1.cjs'这个路径下找yarn呢,很明显这是之前yarn3的路径,后来在我的C:\Users\aaa\当前用户目录下发现了.yarnrc.yml文件,打开一看里面的yarnPath果然配置的就是.yarn\releases\yarn-3.1.1.cjs,.yarn目录和.yarnrc.yml同级,都在C:\Users\aaa\目录下。

查了下yarn文档,.yarnrc.yml就是yarn的配置文件,其中的yarnPath参数配置的就是yarn二进制文件的路径

image.png

解决办法:

修改yarnPath为正确的yarn1.22的脚本路径:

下面是我安装yarn1时的安装路径 image.png

所以我把yarnPath改为如下: image.png

问题解决: image.png