报错截图:
问题背景:
- 先装了nodejs16.14,因为版本太高然后又卸载了重装nodejs13.14
- 先装了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二进制文件的路径
解决办法:
修改yarnPath为正确的yarn1.22的脚本路径:
下面是我安装yarn1时的安装路径
所以我把yarnPath改为如下:
问题解决: