Gem 'uglifier'ı yüklemeye çalışırken bir hata oluştu. (Bundler :: GemRequireError)


119

Neden bu hatayı alıyorum?

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>

Bu sorunu çözdünüz mü? Bende de tamamen aynı sorun var. Ruby 2.2.4'ü ubuntu'da 4.2.5 rayları ile çalıştırıyorum.
Sadece bir öğrenci

2
sudo apt-get install nodejs'yi deneyin
user3754535

Yanıtlar:


252

NodeJS'yi Ubuntu'ya kurmak için aşağıdaki komutu çalıştırmalısınız

sudo apt-get install nodejs

veya bunu OSX için çalıştırın

brew install nodejs

Uglifier bir JS sarmalayıcısıdır ve çalışan bir JS çalışma zamanı veya JS yorumlayıcısına ihtiyaç duyar. NodeJS'yi kurmayı tercih ederim.


4
neden js env gerekiyor?
DragonKnight

1
Çalışıyor :) Teşekkürler, Peki bu nodej'lerin kurulmasına neden ihtiyacımız var?
Alankar More

1
Bir JS Runtime'a ihtiyacımız var, @AlankarMore;). Dolayısıyla, NodeJS bu genellikle benim seçimimdir, çünkü temelde Chrome'un V8 motoruna ( developer.google.com/v8 ) dayalıdır . Bugün Rails'de çok sayıda JS'miz var. Ve tüm bunları yürütmek için bir ortama ihtiyacımız var. Buna sarmalayıcılar, çalışma zamanları / tercümanlar dahildir ...
Marcos Serpa

1
Nodej'leri kaynaktan yüklüyorsanız, ikilinin execjs'in /usr/bin/nodejsbulmayı beklediği yere kurulduğundan emin olun .
Rok Strniša

1
@AboozarRajabi Nodejs gerekli değildir, ancak bir JS çalışma zamanı veya yorumlayıcıdır. Ve bu, NodeJS'nin davamızdaki rolüdür. NodeJS değilse, başka bir JS çalışma zamanı / yorumlayıcıya ihtiyacınız olacaktır.
Marcos Serpa

36

Varsayılan Rails Gemfile'da, gem 'therubyracer' satırı yorumlanmıştır. Eğer yorumunu kaldırırsan, o cevheri alacaksın ve işe yaramalı.

" Rails'e Başlarken " bölümünden :

CoffeeScript ve JavaScript varlık sıkıştırmasının derlenmesi, sisteminizde kullanılabilir bir JavaScript çalışma süresine sahip olmanızı gerektirir, bir çalışma zamanının olmaması durumunda execjsvarlık derlemesi sırasında bir hata görürsünüz . Genellikle Mac OS X ve Windows, bir JavaScript çalışma zamanı yüklenmiş olarak gelir. Raylar ekler therubyraceroluşturulan için gem Gemfileyeni uygulamalar için bir yorumladı doğrultusunda ve ihtiyaç varsa uncomment,. therubyrhinoJRuby kullanıcıları için önerilen çalışma zamanıdır ve GemfileJRuby altında oluşturulan uygulamalara varsayılan olarak eklenir . ExecJS'de desteklenen tüm çalışma zamanlarını inceleyebilirsiniz .


2
Teşekkürler! Bu, NodeJS'ye güvenmekten daha kolay ve daha temiz görünüyor.
ConnorWGarvey

Bu cevap size oldukça (üretim için) olması gerektiğini eludes çalışsa da uygun execjs node.js gibi çalışma zamanı
Cyril DUCHON-Doris

0

DB oluşturulurken bir hata meydana geldi.

Sorun şu ki, Node.js sudokomut dosyası olmadan yüklemeye çalışıyor :

sudo apt-get install nodejs
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.