创建Ruby On Rails应用时遭遇Webpacker错误,请求解决
解决Rails 6安装Webpacker时的Yarn冲突问题
看起来你遇到的问题是系统里的yarn命令指向的是一个老旧的Ruby gem,而不是Rails需要的Node.js官方Yarn包管理器。从你的yarn -v输出能看到,这个yarn是2011年的v0.1.1版本,还带有Ruby的trollop gem弃用提示,这完全不是Webpacker依赖的那个Yarn工具。
下面是具体的解决步骤:
首先卸载这个混淆的Ruby yarn gem,避免它干扰正常的Yarn调用:
gem uninstall yarn执行时如果提示有多个版本,选择全部卸载即可。
安装官方的Node.js版Yarn:
先确保你的系统已经安装了Node.js(Webpacker也依赖Node.js),然后通过npm全局安装Yarn:npm install -g yarn或者你也可以用自己系统的包管理器安装(比如Ubuntu用
apt install yarn,macOS用brew install yarn),只要确保安装的是官方的Yarn包管理器就行。验证安装是否正确:
重新打开终端(或者刷新环境变量),执行:yarn -v现在应该显示类似
1.22.19或者更高的版本,而且不会再出现Ruby相关的弃用提示。最后重新执行Webpacker安装命令:
rails webpacker:install这时候应该就能正常完成安装了。
补充说明
这个问题的核心是Ruby生态里有一个同名的旧gem叫yarn,和Node.js的Yarn包管理器重名了,导致系统优先调用了这个Ruby gem,而不是Webpacker需要的真正Yarn工具。卸载掉这个Ruby gem后,系统就会找到你新安装的官方Yarn了。
内容的提问来源于stack exchange,提问作者Mohamed Emad Emsawy
相关产品推荐
相关产品推荐

