はじめに
最近macのOSがアップデートされたのか、rails sでテストサーバーを立ち上げようとした時に
Gem Load Error is: Could not find a JavaScript runtime.
See https://github.com/rails/execjs for a list of available runtimes.
のようなエラーが出てしまうことがあるようで、よく質問が来るので対処方法をまとめました。
(前提、環境)
自分
mac
macOS Mojave 10.14.5
ruby 2.5.1
rails 5.2.3
homebrew 2.2.5
何が原因なのか
結論JavaScriptを実行するためのサーバーサイドのシステムがないということが言われています。
Railsを動かすためにもRails本体をPCにインストールする必要がありますし、Rubyを動かすためにもRubyをインストールしますよね!
rbenvなどで。
最近のmacにはRubyなどが標準搭載されており、JavaScriptを動かすためのエンジンも標準搭載されているケースが多いです。
しかし、OSをアップデートした際なのか分からないですが、 JavaScriptを動かすためのエンジンが入っていない現象が発生してしまいます。
結論
nodejsをインストールしましょう。
僕の場合はhomebrewを使用しているので、
brew install nodejs
でnodejsをインストールし、その後rails sでテストサーバーを立ち上げます。
(その他複数人の環境でも同じくできました。)
終わりに
nodejsはブラウザ上ではなくターミナルでもJavaScriptを叩くことができるようになるので、JavaScriptの参考書などを読んでいると必然的に入れていることが多いはずなのですが、macのOSを書き換えると参照しなくなってしまうのですかねぇ・・・
ちょっと不可思議な現象で頻発しているようなのでまとめております。
もちろんmacじゃないよ!とかその他の原因も考えられるので一概に正解とは言えないかもしれないことだけご了承いただければ嬉しいです!
おすすめ参考書
せっかくなので、JavaScriptのおすすめ参考書を・・・
改訂新版JavaScript本格入門 ~モダンスタイルによる基礎から現場での応用まで
お値段が3,000円と少し高いのがネックですが、技術書はだいたい高いので〜汗
これはあくまで改訂新版がおすすめです!
ECMAScript 2015が反映されているので改訂新版でないとあまり意味ないです。
しかし、基本的なことは全部網羅されているのと、現場で使える概念がだいたい載っているかなと思うので是非初学者の方は読んでみましょう!
JavaScriptの世界へようこそ!