web-dev-qa-db-ja.com

gem 'uglifier'をロードしようとしたときにエラーが発生しました。 (Bundler :: GemRequireError)

このエラーが出るのはなぜですか?

shibly@mybox:~/blog$ Rails server
/home/shibly/.gem/Ruby/2.2.4/gems/bundler-1.11.2/lib/bundler/runtime.rb:80:in `rescue in block (2 levels) in require': There was an error while trying to load the gem 'uglifier'. (Bundler::GemRequireError)
    from /home/shibly/.gem/Ruby/2.2.4/gems/bundler-1.11.2/lib/bundler/runtime.rb:76:in `block (2 levels) in require'
    from /home/shibly/.gem/Ruby/2.2.4/gems/bundler-1.11.2/lib/bundler/runtime.rb:72:in `each'
    from /home/shibly/.gem/Ruby/2.2.4/gems/bundler-1.11.2/lib/bundler/runtime.rb:72:in `block in require'
    from /home/shibly/.gem/Ruby/2.2.4/gems/bundler-1.11.2/lib/bundler/runtime.rb:61:in `each'
    from /home/shibly/.gem/Ruby/2.2.4/gems/bundler-1.11.2/lib/bundler/runtime.rb:61:in `require'
    from /home/shibly/.gem/Ruby/2.2.4/gems/bundler-1.11.2/lib/bundler.rb:99:in `require'
    from /home/shibly/blog/config/application.rb:7:in `<top (required)>'
    from /home/shibly/.gem/Ruby/2.2.4/gems/railties-4.2.5/lib/Rails/commands/commands_tasks.rb:78:in `require'
    from /home/shibly/.gem/Ruby/2.2.4/gems/railties-4.2.5/lib/Rails/commands/commands_tasks.rb:78:in `block in server'
    from /home/shibly/.gem/Ruby/2.2.4/gems/railties-4.2.5/lib/Rails/commands/commands_tasks.rb:75:in `tap'
    from /home/shibly/.gem/Ruby/2.2.4/gems/railties-4.2.5/lib/Rails/commands/commands_tasks.rb:75:in `server'
    from /home/shibly/.gem/Ruby/2.2.4/gems/railties-4.2.5/lib/Rails/commands/commands_tasks.rb:39:in `run_command!'
    from /home/shibly/.gem/Ruby/2.2.4/gems/railties-4.2.5/lib/Rails/commands.rb:17:in `<top (required)>'
    from bin/Rails:9:in `require'
    from bin/Rails:9:in `<main>
118
shibly

あなたはUbuntuにNodeJSをインストールするために次のコマンドを実行するべきです

Sudo apt-get install nodejs

またはOSXのためにこれを実行する

brew install nodejs

UglifierはJSラッパーであり、実行中のJSランタイムまたはインタプリタが必要です。 NodeJSをインストールすることにしました。

250
Marcos Serpa

デフォルトのRails Gemfileでは、gem 'therubyracer'の行はコメントアウトされています。あなたがそれをコメント解除するならば、あなたはその宝石を手に入れるでしょう、そしてそれはうまくいくはずです。

" Rails入門 "より:

CoffeeScriptとJavaScriptのアセット圧縮をコンパイルするには、システム上でJavaScriptランタイムが利用可能である必要があります。ランタイムがない場合は、アセットのコンパイル中にexecjsエラーが発生します。通常、Mac OS XとWindowsにはJavaScriptランタイムがインストールされています。 Railsは、新しいアプリケーション用にコメント付きの行で、生成されたtherubyracerGemfile gemを追加します。必要に応じてコメントを解除できます。 therubyrhinoはJRubyユーザーに推奨されるランタイムであり、デフォルトでJRubyの下で生成されたアプリのGemfileに追加されます。サポートされているすべてのランタイムを ExecJS で調べることができます。

36
user3780968

データベースの作成中にエラーが発生しました。

問題は、Node.jsがスクリプトにSudoなしでインストールしようとしたことです。

Sudo apt-get install nodejs
0
gleb glazkov