なぜRailsでtherubyracerのコメントを外さなきゃいけないのか
Why?
- Rails 起動のときに、therubyracerのコメントを外せ外せって書いてあるけどなんでかわからん
そもそも therubyracer って何?
therubyracer | RubyGems.org | your community gem host
- therubyracer: JavaScript のエンジンである v8 を Ruby から使えるようにする gem
- v8 エンジンがシステム上で利用できる場合はそのエンジンを使う
- 利用できない場合には libv8 gem から、各環境ごとの v8 エンジンバイナリファイルを取得する
- v8: V8 JavaScript Engine
- libv8: 各環境ごとの v8 エンジンバイナリファイルを用意してくれる
- libv8はソースコードからコンパイルするバージョンと、OS別のバイナリデータのものとがある
- バイナリデータがないバージョンを選ぶとコンパイルが始まって、5-10分ほど食う
- https://rubygems.org/gems/libv8/versions
なんで Rails に JSランタイムが必要なのか?
- RailsではcoffeescriptのコンパイルやJS圧縮にExecJSというライブラリを使う
- 例えば、asset pipelineを使わないならいらない
- ExecJSはそのシステム上で使えるJavascriptランタイムを選んで実行する
- therubyracer でも node.js でも、使える方を使う
1. We can write your ruby codes inside js codes. 2. We can invoke the js functions from ruby codes. 3. Manipulation of javscript objects & the passing them to javascript functions.
ごめん、答え見つけた
Q.なぜデフォルトでコメントアウトされてるの?
A.それは他のJSランタイム(Node.jsとか)があるなら、必要がないからだよ!そもそもJSいらないなら、Railsの設定でExecJSライブラリを使わないという選択も可能だよ!
TODO
- ExecJSライブラリを使わない場合、どれくらい不便なのか。
- therubyracerの役割が今ひとつわかってない
- Node.jsがある場合、どうやって動かす?