[ruby-on-rails] gem ‘uglifier’를로드하는 동안 오류가 발생했습니다. (번 들러 :: 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>



답변

Ubuntu에 NodeJS를 설치하려면 다음 명령을 실행해야합니다.

sudo apt-get install nodejs

또는 OSX 용으로 실행

brew install nodejs

Uglifier는 JS 래퍼이며 JS 런타임 또는 JS 인터프리터가 필요합니다. NodeJS를 설치하기로 선택했습니다.


답변

기본 Rails Gemfile에서 gem ‘therubyracer’의 줄은 주석 처리되어 있습니다. 주석 처리를 제거하면 해당 보석이 표시되고 작동합니다.

Rails 시작하기 “에서 :

CoffeeScript 및 JavaScript 자산 압축을 컴파일하려면 시스템에서 JavaScript 런타임을 사용할 수 있어야합니다. 런타임이 없으면 execjs자산 컴파일 중에 오류 가 표시됩니다 . 일반적으로 Mac OS X 및 Windows에는 JavaScript 런타임이 설치되어 있습니다. Rails는 새 앱의 주석 처리 된 줄에 therubyracer생성 Gemfile된 gem에 gem을 추가하고 필요한 경우 주석 처리를 해제 할 수 있습니다. therubyrhinoJRuby 사용자에게 권장되는 런타임이며 기본적으로 GemfileJRuby에서 생성 된 인앱에 추가됩니다 . ExecJS 에서 지원되는 모든 런타임을 조사 할 수 있습니다 .


답변

db를 만드는 동안 오류가 발생했습니다.

문제는 Node.js sudo가 스크립트 없이 설치를 시도했다는 것입니다 .

sudo apt-get install nodejs


답변