Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Module build failed: Error: spawn bin/rails ENOENT

After adding the ERB loader and adding the .erb file extension to my application pack (with webpacker), I am getting the following error:

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

it is also happening with the sample hello_erb.js.erb pack.

Here is an example app that reproduces the problem: https://github.com/jonhue/test_app

like image 412
heroxav Avatar asked Mar 07 '23 22:03

heroxav


2 Answers

You may be missing generated files

If you are missing the bin/rails executable maybe you have cloned from a repository that followed the steps on this issue Your enviroment should be good to go if you have rails installed correctly and then run:

Rails < 5

$ bundle exec rake rails:update:bin

Rails >= 5

$ rails app:update:bin

You may have issues with webpack installation and/or configuration

If those files on bin\ exists, you may have ran into problems when installing and/or configuring webpack. Try creating a project installing everything following the documentation, commiting it with a versioning system like GitHub, copy/paste your project configuration and git diff it, I bet you will find differences between them.

You are using Windows or some enviroment that is problematic

If that is the case there is already a discussion to fix it 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 that makes you call ./bin/rails app:template... to just rails app:template....

like image 129
ErvalhouS Avatar answered Mar 15 '23 08:03

ErvalhouS


The ERB runner configuration contains a setting that must be changed for it to work on Windows. Open config\webpack\loaders\erb.js and replace this line:

runner: "bin/rails runner"

with this line:

runner: "ruby bin\\rails runner
like image 33
Arctodus Avatar answered Mar 15 '23 09:03

Arctodus