411

Mongoid / Devise Rails 3.1テンプレートMongoidおよびDevise)を使用しようとしていますが、 ExecJSがJavaScriptランタイムを見つけられないというエラーが表示され続けます。インストールしていなくても十分ですが、Node.jsMustangRuby Racerをインストールしようとしましたが、何も機能していません。

JavaScriptランタイムが見つかりませんでした。使用可能なランタイムのリストについては、 sstephenson / ExecJS(GitHub)を参照してください( ExecJS::RuntimeUnavailable)。

これを機能させるには何をする必要がありますか?

4

16 に答える 16

445

ExecJSRubyRacerをgemファイルに追加して実行するだけbundle installです。

gem 'execjs'

gem 'therubyracer'

後ですべてがうまくいくはずです。

于 2011-06-12T17:49:14.293 に答える
445

Ubuntuユーザー

私はUbuntu11.04を使用していて、同様の問題がありました。Node.jsをインストールすると修正されました。

Ubuntu 13.04 x64以降、実行する必要があるのは次のとおりです。

sudo apt-get install nodejs

これで問題は解決します。


CentOS/RedHatユーザー

sudo yum install nodejs
于 2011-06-08T17:53:09.423 に答える
77

Gemファイルに次のように記述します

gem 'execjs'
gem 'therubyracer'

その後、実行します

bundle install

私にとってはすべてうまくいきます:)

于 2011-07-05T18:00:15.353 に答える
48

同様の問題がありました。私のRails3.1アプリはWindowsで正常に動作しましたが、Linuxで実行するとOPと同じエラーが発生しました。両方のプラットフォームで私のために働いた修正は、私に以下を追加することでしたGemfile

gem 'therubyracer', :platforms => :ruby

秘訣は、:platforms => :ruby実際にはこのgemを「CRuby(MRI)またはRubiniusでのみ使用し、Windowsでは使用しない」ことを意味することを知っていることです。

のその他の可能な値についてはmanページ:platformsで説明されています。bundler

参考:Windowsには、検索可能なJavaScriptエンジンが組み込まれていexecjsます。Linuxにはビルトインはありませんが、インストールできるものはいくつかあります。 therubyracerそれらの1つです。その他は、execjs README.mdにリストされています。

于 2011-08-10T00:55:50.413 に答える
36

次のgemをGemfileに追加すると、問題が解決しました。

gem 'therubyracer'

次に、新しい依存関係をバンドルします。

$ bundle install
于 2011-07-09T07:48:48.227 に答える
17

別の方法は、持っていないものを含むgemグループなしでバンドルすることです。

そうしてください:

bundle install --without assets

もちろん、アセットチェーンの処理を行っていない場合は、Gemfileを変更する必要はありません。これは、通常、非開発環境に適用されます。バンドルは、.bundle/configファイルの「--without」設定を記憶します。

于 2011-12-09T01:15:34.280 に答える
7

gemファイルに次のgemを追加します

gem 'therubyracer'
gem 'execjs'

実行します

bundle install

完了です:)

于 2012-09-13T06:58:28.710 に答える
6

Amazon linux(AMI)の場合:

sudo yum install nodejs npm --enablerepo=epel
于 2015-08-03T01:59:51.147 に答える
5

これと同じエラーが発生しましたが、本番環境ではなくステージングサーバーでのみ発生しました。nodejsはすでに両方の環境にインストールされています。

次のように入力します。

which node

nodeコマンドは本番環境では/usr/ bin / nodeにありましたが、ステージングでは/ usr / local / bin/nodeにありました。

ステージングでシンボリックリンクを作成した後、すなわち:

sudo ln -s /usr/local/bin/node /usr/bin/node

その後、アプリケーションはステージングで機能しました。

騒ぎも大騒ぎもありません。

于 2015-05-11T02:42:36.540 に答える
4

以前は、 RubyRacerをGemファイルに追加して修正していました。しかしねえ、Node.jsは動作します!

于 2011-09-02T20:31:29.653 に答える
3

RubyRacerはメモリに悪影響を与えるため、使用しないでください。ここで何人かの人々によって提案されたようにNode.jsをインストールすることはより良い考えです。

ExecJs Libraryで使用できるこの利用可能なランタイムのリストには、Node.jsの使用法も記載されています。

https://github.com/sstephenson/execjs

したがって、Node.jsはやり過ぎではなく、RubyRacerを使用するよりもはるかに優れたソリューションです。

于 2013-06-29T20:01:05.093 に答える
2

参考までに、これは私にとっての問題を修正しました...それはパスの問題です:http: //forums.freebsd.org/showthread.php ?t = 35539

于 2013-03-08T16:34:34.207 に答える
1

nvmnodeを介してインストールしましたが、Capistranoを使用してデプロイするときにこの問題が発生しました。Capistranoは非対話的に実行されるため、nvmを自動的にロードしませんでした。

修正するには、nvmが追加する行を一番~/.bashrc上に移動するだけです。ファイルは次のようになります。

export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"  # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"  # This loads nvm bash_completion

# If not running interactively, don't do anything
case $- in
    *i*) ;;
      *) return;;
esac
于 2020-03-18T16:29:25.263 に答える
0

この問題は、Ruby 1.9.3でrbenvを使い始めたときに発生しましたが、システムのrubyは1.8.7です。宝石は両方の場所にインストールされていますが、何らかの理由でrailsスクリプトがそれを取得しませんでした。しかし、Gemfileに「execjs」と「therubyracer」を追加することでうまくいきました。

于 2013-03-26T08:19:29.517 に答える
0

gemファイルでこの行のコメントを解除します。

19#gem'therubyracer'、プラットフォーム:: ruby

そして、バンドルインストールを実行します

あなたは働く準備ができています。:)

于 2014-05-05T14:24:56.580 に答える
0

Ubuntu 18.04、Ruby 2.6。*、Rails 5、RubyMine 2019.1.1を使用してRubyMineでデバッグしようとすると、同じ問題が発生しました。

mini_racerこの問題を解決するために、私は自分の行のコメントを外してからGemfile実行しましたbundle

# See https://github.com/rails/execjs#readme for more supported runtimes
# gem 'mini_racer', platforms: :ruby

への変更:

# See https://github.com/rails/execjs#readme for more supported runtimes
gem 'mini_racer', platforms: :ruby
于 2019-05-19T17:53:32.907 に答える