CuriousMind
CuriousMind

Reputation: 34145

Why does rails require JavaScript Runtime?

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

Answers (2)

tybro0103
tybro0103

Reputation: 49703

Look into the Rails Asset Pipeline. It does fancy stuff with JavaScript (and CSS) files. Notably:

  1. It converts CoffeeScript into JavaScript
  2. It combines all javascript files into one
  3. It minifies that file

The JavaScript runtime is used for minification.

Upvotes: 35

Ed Jones
Ed Jones

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

Related Questions