Only Bolivian Here
Only Bolivian Here

Reputation: 36743

rake db:create - Could not find a JavaScript runtime

Here is the error I get:

sergio@sergio-VirtualBox:~/blog$ rake db:create
rake aborted!
Could not find a JavaScript runtime. See https://github.com/sstephenson/execjs for a list of available runtimes.

(See full trace by running task with --trace)

sergio@sergio-VirtualBox:~/blog$ 

So after some searching it seems I need to install a Javascript runtime for Ruby.

Is there a difference between the many different options? It seems Node.js is the easiest to install, will this come back to bite me or is this choice OK?

This answer, seems to be what I'm looking for but I don't know how to make use of it. Where do I find this "gemfile" and is it a per rails project file or a global ruby file? I'm very confused and can't seem to get my bearings and multiple answers contradict each other and don't solve the issue.

Add this to your Gemfile

gem 'therubyracer', require: "v8"

and run

bundle install

Upvotes: 19

Views: 21639

Answers (6)

FahadJ
FahadJ

Reputation: 1

I had the same error, but then I reinstalled Ruby193 with all the checkboxes (Tc/Tk, associate rb, and add to PATH).

And then deleted the GEMFile.lock

Edited the Gemfile whereever I saw gem therubyracer, I changed it to: gem therubyracer, :platform => :ruby

  • Then bundle install

  • Then rake db:drop

  • Then rake db:create

  • Then rake db:migrate

and so on

Upvotes: 0

Michael Durrant
Michael Durrant

Reputation: 96484

There are several fairly similar options such rubytheracer, node and execjs.

rubytheracer has fallen out of favor due to its code size. Vendors such as Heroku (for rails) actively discourage it.

I currently recommend node.js

More info at Rails - Could not find a JavaScript runtime?

Upvotes: 1

Buminda
Buminda

Reputation: 621

insert gem 'therubyracer' in Gemfile in a new line 1. run

gem install therubyracer -v '0.11.4'

  1. run

bundle install

This will work

Upvotes: 0

Aeon
Aeon

Reputation: 1

Just gem install "therubyracer" and it just works.

Upvotes: -1

djlumley
djlumley

Reputation: 2967

Ruby itself doesn't require a JS runtime, but a default new Rails application does.

There's a file called Gemfile in your main application directory (i.e. per Rails project) which is a list of gems required for your project that you can install using bundle install.

Adding the line gem 'therubyracer' and then bundle install will install the ruby racer JS runtime, which I've found to be the simplest if you're on a 64bit OS.

You can find more information about your Gemfile at the Bundler site.

Upvotes: 54

Ben Zhang
Ben Zhang

Reputation: 1281

Have you installed Node.js on your computer yet? It needs to be installed on your computer as well.

here is the link to download, http://nodejs.org/#download

Upvotes: 6

Related Questions