I'm trying to use the Mongoid / Devise Rails 3.1 template (Mongoid and Devise), and I keep getting an error stating ExecJS cannot find a JavaScript runtime. Fair enough when I didn't have any installed, but I've tried installing Node.js, Mustang and the Ruby Racer, but nothing is working.
I could not find a JavaScript runtime. See sstephenson/ExecJS (GitHub) for a list of available runtimes (ExecJS::RuntimeUnavailable
).
What do I need to do to get this working?
I had this same error but only on my staging server not my production environment. nodejs was already installed on both environments.
By typing:
I found out that the node command was located in: /usr/bin/node on production but: /usr/local/bin/node in staging.
After creating a symlink on staging i.e. :
the application then worked in staging.
No muss no fuss.
In your gem file Uncomment this line.
19 # gem 'therubyracer', platforms: :ruby
And run bundle install
You are ready to work. :)
An alternative way is to just bundle without the gem group that contains the things you don't have.
So do:
you don't have to modify the Gemfile at all, providing of course you are not doing asset chain stuff - which usually applies in non-development environments. Bundle will remember your '--without' setting in the .bundle/config file.
Ubuntu Users
I'm on Ubuntu 11.04 and had similar issues. Installing Node.js fixed it.
As of Ubuntu 13.04 x64 you only need to run:
This will solve the problem.
CentOS/RedHat Users
In your Gem file, write
and then run
Everything works fine for me :)
FYI, this fixed the problem for me... it's a pathing problem: http://forums.freebsd.org/showthread.php?t=35539