模块构建失败:错误:生成bin / rails ENOENT

时间:2018-02-09 10:01:56

标签: ruby-on-rails webpack erb webpacker 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

2 个答案:

答案 0 :(得分:4)

您可能缺少生成的文件

如果您遗漏了bin/rails可执行文件,可能是您从遵循this issue步骤的存储库克隆的 如果你正确安装了导轨然后运行,你的环境应该很好:

  

Rails< 5

$ bundle exec rake rails:update:bin
  

Rails> = 5

$ rails app:update:bin

您可能在webpack安装和/或配置

时遇到问题

如果bin\上存在这些文件,则可能会遇到问题when installing和/或configuring webpack。 尝试创建一个项目,安装文档之后的所有内容,将其提交给GitHub等版本控制系统,复制/粘贴项目配置和git diff它,我打赌你会发现它们之间存在差异。

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

如果是这种情况,则已经讨论过修复它in an open issue in webpacker github。但是您可以尝试直接从github使用webpacker获取最新修补程序,降级到其他版本以查看结果是否不同,或者从源代码使用webpack并更改文件install.rake,这样可以调用{{1}只是./bin/rails app:template...

答案 1 :(得分:1)

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

runner: "bin/rails runner"

这一行:

runner: "ruby bin\\rails runner