Module build failed: Error: spawn bin/rails ENOENT

Module build failed: Error: spawn bin/rails ENOENT

添加 ERB 加载程序并将 .erb 文件扩展名添加到我的 application 包(使用 webpacker)后,我收到以下错误:

ERROR in ./app/webpack/packs/application.js.erb
Module build failed: Error: spawn bin/rails ENOENT
    at _errnoException (util.js:1024:11)
    at Process.ChildProcess._handle.onexit (internal/child_process.js:190:19)
    at onErrorNT (internal/child_process.js:372:16)
    at _combinedTickCallback (internal/process/next_tick.js:138:11)
    at process._tickCallback (internal/process/next_tick.js:180:9)
 @ multi (webpack)-dev-server/client?http://localhost:3035 ./app/webpack/packs/application.js.erb

示例 hello_erb.js.erb 包也发生了这种情况。

这是一个重现问题的示例应用程序:https://github.com/jonhue/test_app

您可能缺少生成的文件

如果您缺少 bin/rails 可执行文件,您可能是从遵循 this issue 中的步骤的存储库克隆的 如果你已经正确安装了 rails 然后 运行:

你的环境应该很好

Rails < 5

$ bundle exec rake rails:update:bin

Rails >= 5

$ rails app:update:bin

你的webpack安装可能有问题and/or配置

如果 bin\ 上的那些文件存在,您可能 运行 遇到问题 when installing and/or configuring webpack。 尝试创建一个项目,按照文档安装所有内容,使用 GitHub、copy/paste 您的项目配置和 git diff 之类的版本控制系统提交它,我打赌您会发现它们之间的差异。

您正在使用 Windows 或某些有问题的环境

如果是这种情况,已经有一个修复它的讨论 in an open issue in webpacker github. But you could try stuff like using webpacker directly from github to get latest fixes, downgrading to other versions to see if the result is different, or use webpack from source and change the file install.rake 这让你调用 ./bin/rails app:template... 只是 rails app:template....

ERB 运行程序配置包含必须更改才能在 Windows 上运行的设置。打开 config\webpack\loaders\erb.js 并替换此行:

runner: "bin/rails runner"

这一行:

runner: "ruby bin\rails runner