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

Rails precompile assets Yarn executable was not detected

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

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

我该如何解决这个问题?我也想知道是怎么回事。

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

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

yarn add --dev webpack webpack-dev-server

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

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

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

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