15

「issues」フォルダーに新しい Rails アプリを作成しましたが、「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」が機能しました。

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
4

6 に答える 6

19

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 を編集して ruby​​racer をインストールすることでした。私は現在Rails 4.0 RC1アプリに取り組んでおり、それらはすべてgem 'therubyracer', platform: :rubyGemfileに既にコメントアウトされています。

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

于 2013-05-30T21:31:11.590 に答える
8

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

gem 'therubyracer'

そして、実行します

$ bundle install
于 2013-05-30T21:30:22.717 に答える
1

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

これを Gemfile に追加します。

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

また、本番用の Node.js などの他のオプションを確認することもできますが、開発用にはそれで十分です。

于 2013-05-30T21:31:17.723 に答える
0

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

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

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

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

  • NodeJSをスペースを含まないディレクトリ(例: in C:\development\nodejs\) にインストールしました ...それぞれのエントリが引用符で囲まれている場合、(Windows バージョンの) PATH で実行可能ファイルを見つけることができなかったからです

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

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

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

  • Railsを始めたrails server

于 2013-10-11T06:30:41.623 に答える