のむログ

技術メモ / 車 / 音楽 / 雑記 / etc...

Railsでの「There was an error while trying to load the gem 'uglifier'」

f:id:nomunomu0504:20190411144525p:plain:w0

問題

rails sを実行した時に以下のようなエラーがでる。

nomunomu@nomunomu-server:~/rails_lesson/myapp$ rails server -b 192.168.11.11 -d
/home/nomunomu/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/bundler-1.16.3/lib/bundler/runtime.rb:84:in `rescue in block (2 levels) in require': There was an error while trying to load the gem 'uglifier'. (Bundler::GemRequireError)
Gem Load Error is: Could not find a JavaScript runtime. See https://github.com/rails/execjs for a list of available runtimes.

解決策

gem 'therubyracer', platforms: :rubyをGemfileに追記する

or

何かしらのJSエンジンをインストールする

説明

therubyracerとは、Javascriptエンジンの「V8 JavaScript Engine」をRubyから使えるようにするgemらしい。 (またそのままで使えない環境の場合、環境に合ったバイナリファイルを持ってきてくれる) ただ既にnode.jsなどがすでにインストールされている環境では不要になるため、デフォルトの設定ではコメントアウトされている。