未检测到 Rails 预编译资产 Yarn 可执行文件

Posted

技术标签:

【中文标题】未检测到 Rails 预编译资产 Yarn 可执行文件【英文标题】:Rails precompile assets Yarn executable was not detected 【发布时间】:2018-01-11 04:27:34 【问题描述】:

我有一个从 Rails 5.0 转换为 Rails 5.1.0 的 Rails 项目。当我尝试预编译资产时,我收到以下错误消息:

Yarn executable was not detected in the system.
Download Yarn at https://yarnpkg.com/en/docs/install

我从互联网搜索中读到的所有内容都说 yarn 和 webpacker 是 Rails 5.1 自带的。我从检查 rails 版本中得到以下信息。

$rails --version
Rails 5.1.0

我该如何解决这个问题?我也想知道发生了什么。

【问题讨论】:

你安装了webpacker和yarn吗? 【参考方案1】:

如果您尝试在 Heroku 使用 Yarn 部署 Rails 5.2 项目,我建议您查看 Buildpacks 订单。

为了让它在这里工作,我需要将 heroku/NodeJS 放在 heroku/Ruby 之前。

【讨论】:

【参考方案2】:

如果您不使用 yarn/webpacker 来避免日志消息,您可以从 App 目录中删除 bin/yarn。

【讨论】:

【参考方案3】:

Rails 5.1 附带了对 yarn 和 webpack 的支持,但您需要自己安装它们。 Yarn 是包管理器,webpack 是包。

按照https://yarnpkg.com/lang/en/docs/install/ 的说明在您的系统中安装 Yarn,然后将 webpack 添加到您的项目中,例如:

yarn add --dev webpack webpack-dev-server

此外,您看到的消息是警告,而不是直接错误。如果你不需要使用任何花哨的 js 包,你可以使用好的 ol' 资产管道

【讨论】:

我没有看到文件被输出了。我刚刚删除了 public/assets/* 并创建了新文件。在我清空目录之前,我没有收到任何消息表明它输出了已编译的资产文件。这只是一个警告是我需要的关键信息。谢谢。 @FabrizioBertoglio yarn -V 的输出是什么?你的系统是什么? @TomD 非常感谢。这是我的问题的解决方案***.com/questions/45498313/… 使用 rails 5.1,必须使用 yarn 和 webpack?! Rails 5.1 应该依赖 yarn 似乎是不对的——至少在它抱怨缺少它的程度上——但不为其添加依赖项。至少应该清楚的是,安装 yarn 不是必需的。

以上是关于未检测到 Rails 预编译资产 Yarn 可执行文件的主要内容,如果未能解决你的问题,请参考以下文章

Rails:预编译资产缺少节点模块

未使用 Rails 测试环境中的预编译资产

rails 应用程序未启动,资产上的“ActiveSupport::Deprection”错误:预编译

资产预编译期间未找到文件错误

Rails 3.1.1 资产预编译 - rake 中止

Select2 Css 未通过纱线或资产预编译加载