使用nvm时Yarn版本不匹配:全局安装1.22.15执行yarn -v显示3.1.0
问题原因分析
- 父目录存在Yarn Berry版本配置
Yarn 2.x及以上(统称Berry版本)执行时会从当前工作目录向上递归查找配置,只要任意一级父目录存在.yarnrc.yml文件或.yarn/releases目录下的Berry版本二进制包,就会优先使用该版本,忽略全局安装的1.x Classic版本。你可以执行find $(pwd) -name ".yarnrc.yml" 2>/dev/null从当前目录向上查找是否存在对应配置,验证是否属于该情况。 - Shell配置了yarn别名
which命令无法识别Shell内置的alias配置,若你之前在.bashrc、.zshrc等Shell配置文件中为yarn设置了指向3.1.0版本二进制的别名,就会出现路径显示为nvm下的1.x路径,但实际执行的是别名对应版本的问题。你可以执行type yarn命令查看实际生效的命令来源,确认是否存在别名配置。 - Corepack接管了Yarn版本调度
Node v12.10及以上版本内置Corepack工具,若你之前手动执行过corepack enable开启了Corepack功能,Corepack会优先按照自身配置的包管理器版本调度,优先级高于npm全局安装的版本。你可以执行corepack list查看Corepack管理的包版本,确认是否配置了全局Yarn 3.1.0版本。
内容的提问来源于stack exchange,提问作者tpsp
相关产品推荐
相关产品推荐

