web-dev-qa-db-ja.com

Railsサーバーが起動しません-> JavaScriptランタイムが見つかりませんでした

新しいRails app in folder'issues 'を作成しましたが、' Ruby s 'を実行したいときに、エラーが発生しました。助けていただければ幸いです。

[thiago@netbox issues]$ Rails s
/home/thiago/.rvm/gems/Ruby-1.9.3-p429/gems/execjs-1.4.0/lib/execjs/runtimes.rb:51:in `autodetect': Could not find a JavaScript runtime. See https://github.com/sstephenson/execjs for a list of available runtimes. (ExecJS::RuntimeUnavailable)
    from /home/thiago/.rvm/gems/Ruby-1.9.3-p429/gems/execjs-1.4.0/lib/execjs.rb:5:in `<module:ExecJS>'
    from /home/thiago/.rvm/gems/Ruby-1.9.3-p429/gems/execjs-1.4.0/lib/execjs.rb:4:in `<top (required)>'
    from /home/thiago/.rvm/gems/Ruby-1.9.3-p429/gems/coffee-script-2.2.0/lib/coffee_script.rb:1:in `require'
    from /home/thiago/.rvm/gems/Ruby-1.9.3-p429/gems/coffee-script-2.2.0/lib/coffee_script.rb:1:in `<top (required)>'
    from /home/thiago/.rvm/gems/Ruby-1.9.3-p429/gems/coffee-script-2.2.0/lib/coffee-script.rb:1:in `require'
    from /home/thiago/.rvm/gems/Ruby-1.9.3-p429/gems/coffee-script-2.2.0/lib/coffee-script.rb:1:in `<top (required)>'
    from /home/thiago/.rvm/gems/Ruby-1.9.3-p429/gems/coffee-Rails-3.2.2/lib/coffee-Rails.rb:1:in `require'
    from /home/thiago/.rvm/gems/Ruby-1.9.3-p429/gems/coffee-Rails-3.2.2/lib/coffee-Rails.rb:1:in `<top (required)>'
    from /home/thiago/.rvm/gems/Ruby-1.9.3-p429@global/gems/bundler-1.3.5/lib/bundler/runtime.rb:72:in `require'
    from /home/thiago/.rvm/gems/Ruby-1.9.3-p429@global/gems/bundler-1.3.5/lib/bundler/runtime.rb:72:in `block (2 levels) in require'
    from /home/thiago/.rvm/gems/Ruby-1.9.3-p429@global/gems/bundler-1.3.5/lib/bundler/runtime.rb:70:in `each'
    from /home/thiago/.rvm/gems/Ruby-1.9.3-p429@global/gems/bundler-1.3.5/lib/bundler/runtime.rb:70:in `block in require'
    from /home/thiago/.rvm/gems/Ruby-1.9.3-p429@global/gems/bundler-1.3.5/lib/bundler/runtime.rb:59:in `each'
    from /home/thiago/.rvm/gems/Ruby-1.9.3-p429@global/gems/bundler-1.3.5/lib/bundler/runtime.rb:59:in `require'
    from /home/thiago/.rvm/gems/Ruby-1.9.3-p429@global/gems/bundler-1.3.5/lib/bundler.rb:132:in `require'
    from /home/thiago/Documents/wdi/Rails_practice/issues/config/application.rb:7:in `<top (required)>'
    from /home/thiago/.rvm/gems/Ruby-1.9.3-p429/gems/railties-3.2.13/lib/Rails/commands.rb:53:in `require'
    from /home/thiago/.rvm/gems/Ruby-1.9.3-p429/gems/railties-3.2.13/lib/Rails/commands.rb:53:in `block in <top (required)>'
    from /home/thiago/.rvm/gems/Ruby-1.9.3-p429/gems/railties-3.2.13/lib/Rails/commands.rb:50:in `tap'
    from /home/thiago/.rvm/gems/Ruby-1.9.3-p429/gems/railties-3.2.13/lib/Rails/commands.rb:50:in `<top (required)>'
    from script/Rails:6:in `require'
    from script/Rails:6:in `<main>'

'therubyracer' gemをGemfileに追加してから、 '$ bundle install' Works!

Gemfile
source 'https://rubygems.org'

gem 'Rails', '3.2.8'
gem 'sqlite3'

group :assets do
gem 'sass-Rails',   '~> 3.2.3'
gem 'coffee-Rails', '~> 3.2.1'
gem 'uglifier', '>= 1.0.3'
end

gem 'jquery-Rails'
gem 'therubyracer' # added
15
jerseybyte

1月にRails)で作業を開始したとき、WindowsとUbuntuの両方で同じエラーが発生しました。エラーは非常に単純です。サーバーを起動するにはJavaScriptランタイム環境が必要です。

これには多くの解決策があります。私がUbuntuで使用しているのは、NodeJSをインストールすることです。

Ubuntuでは、次のようなものを実行してNodeJSをインストールします。

Sudo add-apt-repository ppa:chris-lea/node.js
Sudo apt-get -y update
Sudo apt-get -y install nodejs

これらは、NodeJSの最新の安定バージョンをインストールするために使用するコマンドですが、Sudo apt-get -y install nodejsを実行するだけで問題ありません。

Windowsでは、私が使用した答えは、他にもあるかもしれませんが、Gemfileを編集してtherubyracerをインストールすることでした。私は現在Rails 4.0 RC1アプリに取り組んでおり、それらはすべて、コメントアウトされたばかりのGemfileにすでにgem 'therubyracer', platform: :Rubyがあります。

Windowsで実行している場合は、Gemfileにgem 'therubyracer'を追加するだけで、実行できるようになります。次に、bundle installを実行します。

19
Art

JavaScriptランタイムが見つかりません。 Gemfileに1つもないと思います。 Gemfileを編集して追加してみてください

gem 'therubyracer'

そして、実行します

$ bundle install
8
salcoin

Javascriptインタープリターをインストールする必要があります。

これをGemfileに追加します。

gem "libv8", ">= 3.11.8"
gem "therubyracer", ">= 0.11.0", :group => :assets, :platform => :Ruby, :require => "v8"

また、Node.jsのような他のオプションを本番用にチェックすることもできますが、開発用にはそれで十分です。

1
Paulo Fidalgo
  • 考えられる問題: NodeJSをインストールしていても、ExecJSがJavascriptランタイムを検出できなかったため、Windows7でRailsサーバーが起動しませんでした。
  • 私のマシンの理由: NodeJSディレクトリは環境の一部でしたが、引用符で囲まれていました(例:[...];"C:\Program Files\nodejs\";[...])。これにより、whereとExecJSがパスエントリを理解できなくなり、最終的にnode.js実行可能ファイルが見つかりません。
  • 解決策:以下を参照してください...

RailsサーバーをWindows(7 64ビット)で起動するには、

  • インストールされたNodeJS実行するディレクトリへ[〜#〜] not [〜#〜]スペースを含める(例:C:\development\nodejs\)...理由はどこ(Windowsバージョンの)それぞれのエントリが引用符で囲まれている場合、PATHで実行可能ファイルを見つけることができませんでした

  • where nodeがノード実行可能ファイル(例:C:\development\nodejs\node.exe)を返したことを確認しました(NodeJSが見つからない場合、execJSもおそらくそれを見つけられません)where nodeがエラーを返した場合は、PATH変数を確認してください。 NodeJSのエントリを先頭に移動し、引用符は使用しないでください

  • それぞれの行をgem 'therubyracer', :platforms => :Rubyに変更してtherubyracerをGemfileから除外しました(前述のとおり)。これにより、therubyracerはLinux /本番環境にインストールされますが、ローカルWindows環境にはインストールされません。

  • gemfile.lockを削除し、gemfilesをクリーンインストールするためにbundle installを呼び出しました

  • 開始Rails with Rails server

0

/home/thiago/.rvm/gems/Ruby-1.9.3-p429/gems/execjs-1.4.0/lib/execjs/runtimes.rbを開いて、行51に移動する必要があります。 autodetectが探しているリソースを確認してください。これは欠落しているようです。

ロードされなかった依存関係がある可能性があります。最善の戦略は、rbenvまたはrvmを使用して新しいRuby gem環境を作成し、再度バンドルすることです。修正する必要があります。

0
New Alexandria

どのディレクトリ内でもサーバーを起動することはできません。ルートディレクトリに移動して入力するだけです

Rails server   

または

Rails s