Reputation: 34145
I was installing rails(v3) on my Ubuntu Linux Box & the install failed complaining of missing javascript runtime. I did some lookup & it turns out that rails require a javascript runtime to be installed on the platform its running.
While, Windows has come bundled with jscript by default. My Ubuntu box didn't have a js runtime & I fixed the issue by installing node.js(V8).
AFAIK, a js runtime is required to execute javascript code & rails is just a web framework in which javascript are embedded. Javascript files run only on client machines.
So, Why does rails require JavaScript Runtime?
Upvotes: 50
Views: 9613
Reputation: 49703
Look into the Rails Asset Pipeline. It does fancy stuff with JavaScript (and CSS) files. Notably:
The JavaScript runtime is used for minification.
Upvotes: 35
Reputation: 653
Railsguides says it has to do with compression:
You will need an ExecJS supported runtime in order to use uglifier. If you are using Mac OS X or Windows you have a JavaScript runtime installed in your operating system. Check the ExecJS documentation for information on all of the supported JavaScript runtimes.
http://guides.rubyonrails.org/asset_pipeline.html#javascript-compression
I thought I had seen Rails actually check the validity of both the stylesheets and the javascript in your app, but maybe it was just SASS prepreocessing.
Upvotes: 3