最終更新日: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
うまくいきました!