ITアドベンチャー

Research & Discoveries on IT Service Development

RailsのJavaScriptエンジンにNode.jsを使う

最終更新日:2012/6/30

これまでtherubyracerを使っていたのですが、突然assets:precompileでエラーが出るようになり(6時間前まではうまくいっていたのですが)、GitHubから持ってきてもうまくコンパイルできなかったので、いっそのことNode.jsに変更することにしました。

ちなみに、Herokuではtherubyracerが非推奨とのことです(メモリ使用量が多いため)。

参考:Rails 3.1+ Asset Pipeline on Heroku Cedar | Heroku Dev Center

環境

CentOS 5.8
Ruby on Rails 3.2.3
Node.js 0.6.18

Node.jsをインストール

以下の手順で、RPMでインストールします。

cd /tmp
wget http://nodejs.tchol.org/repocfg/el/nodejs-stable-release.noarch.rpm
sudo yum localinstall --nogpgcheck nodejs-stable-release.noarch.rpm
sudo yum install nodejs-compat-symlinks npm
rm nodejs-stable-release.noarch.rpm

インストールができたら、バージョンを確認します。

$ node -v
v0.6.18

※RPMのものは少し古いです。

参考:
Installing Node.js via package manager · joyent/node Wiki
CentOS 6.2 に node.js をインストール: あるSEのつぶやき

Gemfileを修正

therubyracerは不要になったのでコメントアウトします。

execjsが自動的にNode.jsを見つけてくれるはずなので、それ以外の記述は不要です。

アセットをプリコンパイル

通常通りソースを落として、bundle installを行った後、アセットをプリコンパイルします。

sudo rake assets:precompile --trace

うまくいきました!

Comments