-
Notifications
You must be signed in to change notification settings - Fork 46
'Could not find a JavaScript runtime' but execjs AND therubyracer are in Gemfile #71
Comments
When I do this (after removing the comment-out from execjs.rb) EXECJS_RUNTIME=RubyRacer The code in runtime.rb, def self.from_environment produces an error: rake aborted! |
So now it looks like the require is failing in ruby_racer_runtime.rb. def available? fails. From irb>, but require 'v8' and require 'therubyracer' but gem check 'therubyracer' is clean. Thanks |
hi |
I had the same problem, and I just posted my solution to your Stack Overflow question: |
I was facing the same issue. I installed nodejs libs on my Ubuntu machine using apt-get install nodejs, it is working fine now. |
still doesn't work for me on windows 7. |
Trying to build on solaris 10 - therubyracer won't build; node.js won't build. I got spidermonkey and built a static library. How can I use that within execjs? |
vim Gemfile
gem 'execjs'
gem 'therubyracer'
bundle install
rails server it works! |
thanks @zx1986 that's correct :) |
Worked for me on a recent application, as well. |
Edit Gemfile works for me, Thanks! |
yeah , it wroks @zx1986 |
How can i set the node js path by Custom? |
To get my Rails-server to start on Windows (7 64bit), I- **installed NodeJS** to a directory that does **NOT** include spaces (eg. in `C:\development\nodejs\`) ... because `where` (Windows version of `which`) was not able to find executables in the PATH if the respective entry was surrounded by quotation marks - made sure that `where node` returned the node-executable (eg. `C:\development\nodejs\node.exe`) I just installed (if where can't find NodeJS, execJS will probably not find it either) if `where node` returns an error, check your PATH-variable, you may want to move the entry for NodeJS to the front and NOT use quotation marks - excluded therubyracer from the Gemfile by changing the respective line to `gem 'therubyracer', :platforms => :ruby` (as said before) this will lead to therubyracer being installed in Linux/production environment, but not on local Windows environment - deleted the Gemfile.lock and called `bundle install` in order to have a clean installation of the gemfiles - started Rails with `rails server` |
Solved the issue by adding 2 gem in Gemfile and after bundle install |
Solved the issue "sudo apt-get install nodejs" |
Solved the issue "sudo apt-get install nodejs" |
Just install nodejs ! |
You should run
to install NodeJS in Ubuntu or
|
Had the same issue this morning.... Thanks, @RayChiu521 - you saved me a couple hours of mind numbing work. |
For guys, still having this issue on docker with alpine. This image helped me solve the issue: https://hub.docker.com/r/usualoma/ruby-with-therubyracer/builds/bmp6m8xaohdyawebk5cvgx5/ |
you can install nodejs : 1、yum info epel-release 2、 sudo yum install epel-release 3、sudo yum install nodejs ,I did it and I'm already working. |
I'm getting this error, like a lot of others:
rake aborted! Could not find a JavaScript runtime. See https://github.com/sstephenson/execjs,
and have already spent more hours searching google then I will admit to. I believe this is an execJs bug, but what do i know? From all the posts, this is a very common issue with rails 3.1. A js runtime is now needed by what are now standard gems like coffee-script and sass.
Most of these cases were resolved by adding the gems 'execjs' and 'therubyracer' to the app Gemfile, and then running 'bundle update' and/or 'bundle install'. But not for me.
I guess I got lucky. I am running rails 3.1.3/ruby 1.9 on an old version of Redhat Linux (Ver 4 (2.6.9-101.ELsmp)). The gcc is 3.4.6.
Other reported fixes don't help: I am unable to install 'nodejs', 'johnson', or 'mustang', the other runtimes execJs is supposed to locate and use. They won't make/install on my system.
So I need to fix the problem causing execJs to fail to locate 'therubyracer'. Has anyone been down this road? Here is the Gemfile (and bundle install says Ok):
source 'http://rubygems.org'
gem 'rails', '3.1.3'
gem 'sqlite3'
gem 'sho-mongrel'
gem 'execjs'
gem 'therubyracer'
gem "therubyracer", :require => 'v8'
group :assets do
gem 'sass-rails', '
> 3.1.5'> 3.1.1'gem 'coffee-rails', '
gem 'uglifier', '>= 1.0.3'
end
And here is a trace:
~/rails/316-private-pub/chatter-after>rake db:create --trace
'rake aborted!
Could not find a JavaScript runtime. See https://github.com/sstephenson/execjs for a list of available runtimes.
/usr/local/lib/ruby/gems/1.9.1/gems/execjs-1.3.0/lib/execjs/runtimes.rb:50:in
autodetect' /usr/local/lib/ruby/gems/1.9.1/gems/execjs-1.3.0/lib/execjs.rb:5:in
module:ExecJS'/usr/local/lib/ruby/gems/1.9.1/gems/execjs-1.3.0/lib/execjs.rb:4:in
<top (required)>' /usr/local/lib/ruby/gems/1.9.1/gems/bundler-1.0.21/lib/bundler/runtime.rb:68:in
require'/usr/local/lib/ruby/gems/1.9.1/gems/bundler-1.0.21/lib/bundler/runtime.rb:68:in
block (2 levels) in require' /usr/local/lib/ruby/gems/1.9.1/gems/bundler-1.0.21/lib/bundler/runtime.rb:66:in
each'/usr/local/lib/ruby/gems/1.9.1/gems/bundler-1.0.21/lib/bundler/runtime.rb:66:in
block in require' /usr/local/lib/ruby/gems/1.9.1/gems/bundler-1.0.21/lib/bundler/runtime.rb:55:in
each'/usr/local/lib/ruby/gems/1.9.1/gems/bundler-1.0.21/lib/bundler/runtime.rb:55:in
require' /usr/local/lib/ruby/gems/1.9.1/gems/bundler-1.0.21/lib/bundler.rb:122:in
require'/home/vitalarthur/rails/316-private-pub/chatter-after/config/application.rb:7:in
<top (required)>' /usr/local/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in
require'/usr/local/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in
require' /home/vitalarthur/rails/316-private-pub/chatter-after/Rakefile:5:in
<top (required)>'/usr/local/lib/ruby/gems/1.9.1/gems/rake-0.9.2.2/lib/rake/rake_module.rb:25:in
load' /usr/local/lib/ruby/gems/1.9.1/gems/rake-0.9.2.2/lib/rake/rake_module.rb:25:in
load_rakefile'/usr/local/lib/ruby/gems/1.9.1/gems/rake-0.9.2.2/lib/rake/application.rb:501:in
raw_load_rakefile' /usr/local/lib/ruby/gems/1.9.1/gems/rake-0.9.2.2/lib/rake/application.rb:82:in
block in load_rakefile'/usr/local/lib/ruby/gems/1.9.1/gems/rake-0.9.2.2/lib/rake/application.rb:133:in
standard_exception_handling' /usr/local/lib/ruby/gems/1.9.1/gems/rake-0.9.2.2/lib/rake/application.rb:81:in
load_rakefile'/usr/local/lib/ruby/gems/1.9.1/gems/rake-0.9.2.2/lib/rake/application.rb:65:in
block in run' /usr/local/lib/ruby/gems/1.9.1/gems/rake-0.9.2.2/lib/rake/application.rb:133:in
standard_exception_handling'/usr/local/lib/ruby/gems/1.9.1/gems/rake-0.9.2.2/lib/rake/application.rb:63:in
run' /usr/local/lib/ruby/gems/1.9.1/gems/rake-0.9.2.2/bin/rake:33:in
<top (required)>'/usr/local/bin/rake:19:in
load' /usr/local/bin/rake:19:in
There is nothing interesting in the development log.
Here is the execjs dir:
/usr/local/lib/ruby/gems/1.9.1/gems/execjs-1.3.0/lib/execjs>ls
disabled_runtime.rb module.rb ruby_rhino_runtime.rb version.rb
external_runtime.rb mustang_runtime.rb runtimes.rb
johnson_runtime.rb ruby_racer_runtime.rb
I have also tried execjs-1.2.13. Same problem, I believe.
If I comment execjs.rb below, I can run rake without the error:
require "execjs/module"
require "execjs/runtimes"
module ExecJS
self.runtime #||= Runtimes.autodetect
end
But then I don't get a runtime, do I? Is execJs a runtime itself? No.
I can see where the error text comes from in runtimes.rb:
def self.autodetect
from_environment || best_available ||
raise(RuntimeUnavailable, "Could not find a JavaScript runtime. " +
"See https://github.com/sstephenson/execjs for a list of available runtimes.")
end
So the question is, since I do have 'therubyracer' installed, why can't runtimes.rb find it? Is execJs broken?
Here it 'therubyracer':
/usr/local/lib/ruby/gems/1.9.1/gems/therubyracer-0.9.9
Anyone else had this problem with execJs?
Thanks, your help would be most helpful!
The text was updated successfully, but these errors were encountered: