为什么资产:预编译在 Rails 6.1 上失败?

问题描述

我在 app/assets/images 中有一个图像资产,我试图在按照 asset pipeline guide 部署到生产环境之前对其进行编译。

尝试执行时:

 RAILS_ENV=production rails assets:precompile

我收到以下错误

rails aborted!
Errno::ENOENT: No such file or directory - C:/../bin/yarn --version

Tasks: TOP => assets:precompile => yarn:install
(See full trace by running task with --trace)

运行时也出现上述错误

rails yarn:install

检查纱线版本

$ yarn
yarn install v1.22.5
[1/4] Resolving packages...
success Already up-to-date.
Done in 0.80s.

我已经安装了 webpacker 5.2。我试图检查 bin/yarn 文件,但没有发现任何问题。有什么想法吗?

解决方法

我有类似的问题,这是因为使用具有 this issue 的 Rails 6.1,他们已将合并推送到分支,但如果您仍有问题

我做的临时解决方案

创建一个文件/bin/yarn 如果您使用 linux,只需将内容如下

#!/bin/bash

exit 0

并通过运行 chmod 755 /bin/yarn 确保它可执行 现在你可以运行预编译命令