Saya mendapatkan kesalahan ini:
rake dibatalkan! Tidak dapat menemukan runtime JavaScript. Lihat https://github.com/sstephenson/execjs ,
Saya sudah menghabiskan lebih banyak waktu mencari google maka saya mau mengakui. Saya percaya ini adalah bug execJs.
Dari semua posting, ini adalah masalah yang sangat umum dengan rail 3.1. Js runtime sekarang dibutuhkan oleh apa yang sekarang menjadi permata standar seperti coffee-script dan sass.
Sebagian besar kasus ini diselesaikan dengan menambahkan permata 'execjs' dan 'therubyracer' ke aplikasi Gemfile, dan kemudian menjalankan 'pembaruan bundel' dan / atau 'bundel instal'. Tapi tidak untukku.
Saya kira saya beruntung. Saya menjalankan rail 3.1.3 / ruby 1.9 pada versi lama Redhat Linux 4 (2.6.9-101.ELsmp) dan gcc adalah 3.4.6.
Perbaikan yang dilaporkan lainnya tidak membantu, saya tidak dapat menginstal 'nodejs', 'johnson', atau 'mustang', yang dijalankan oleh runtime execjs lainnya harus ditemukan dan digunakan. Mereka tidak akan membuat / menginstal di sistem saya.
Saya perlu memperbaiki masalah yang menyebabkan execJs gagal menemukan 'therubyracer'. Ini adalah Gemfile (dan bundel install mengatakan Ok):
source 'http://rubygems.org'
gem 'rails', '3.1.3'
gem 'sqlite3'
gem 'sho-mongrel'
gem 'execjs'
gem 'therubyracer'
#gem "therubyracer", :require => 'v8'
group :assets do
gem 'sass-rails', '~> 3.1.5'
gem 'coffee-rails', '~> 3.1.1'
gem 'uglifier', '>= 1.0.3'
end
Dan inilah jejaknya:
~/rails/316-private-pub/chatter-after>rake db:create --trace
rake aborted!
Could not find a JavaScript runtime. See https://github.com/sstephenson/execjs for a list of available runtimes.
/usr/local/lib/ruby/gems/1.9.1/gems/execjs-1.3.0/lib/execjs/runtimes.rb:50:in `autodetect'
/usr/local/lib/ruby/gems/1.9.1/gems/execjs-1.3.0/lib/execjs.rb:5:in `<module:ExecJS>'
/usr/local/lib/ruby/gems/1.9.1/gems/execjs-1.3.0/lib/execjs.rb:4:in `<top (required)>'
/usr/local/lib/ruby/gems/1.9.1/gems/bundler-1.0.21/lib/bundler/runtime.rb:68:in `require'
/usr/local/lib/ruby/gems/1.9.1/gems/bundler-1.0.21/lib/bundler/runtime.rb:68:in `block (2 levels) in require'
/usr/local/lib/ruby/gems/1.9.1/gems/bundler-1.0.21/lib/bundler/runtime.rb:66:in `each'
/usr/local/lib/ruby/gems/1.9.1/gems/bundler-1.0.21/lib/bundler/runtime.rb:66:in `block in require'
/usr/local/lib/ruby/gems/1.9.1/gems/bundler-1.0.21/lib/bundler/runtime.rb:55:in `each'
/usr/local/lib/ruby/gems/1.9.1/gems/bundler-1.0.21/lib/bundler/runtime.rb:55:in `require'
/usr/local/lib/ruby/gems/1.9.1/gems/bundler-1.0.21/lib/bundler.rb:122:in `require'
/home/vitalarthur/rails/316-private-pub/chatter-after/config/application.rb:7:in `<top (required)>'
/usr/local/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
/usr/local/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
/home/vitalarthur/rails/316-private-pub/chatter-after/Rakefile:5:in `<top (required)>'
/usr/local/lib/ruby/gems/1.9.1/gems/rake-0.9.2.2/lib/rake/rake_module.rb:25:in `load'
/usr/local/lib/ruby/gems/1.9.1/gems/rake-0.9.2.2/lib/rake/rake_module.rb:25:in `load_rakefile'
/usr/local/lib/ruby/gems/1.9.1/gems/rake-0.9.2.2/lib/rake/application.rb:501:in `raw_load_rakefile'
/usr/local/lib/ruby/gems/1.9.1/gems/rake-0.9.2.2/lib/rake/application.rb:82:in `block in load_rakefile'
/usr/local/lib/ruby/gems/1.9.1/gems/rake-0.9.2.2/lib/rake/application.rb:133:in `standard_exception_handling'
/usr/local/lib/ruby/gems/1.9.1/gems/rake-0.9.2.2/lib/rake/application.rb:81:in `load_rakefile'
/usr/local/lib/ruby/gems/1.9.1/gems/rake-0.9.2.2/lib/rake/application.rb:65:in `block in run'
/usr/local/lib/ruby/gems/1.9.1/gems/rake-0.9.2.2/lib/rake/application.rb:133:in `standard_exception_handling'
/usr/local/lib/ruby/gems/1.9.1/gems/rake-0.9.2.2/lib/rake/application.rb:63:in `run'
/usr/local/lib/ruby/gems/1.9.1/gems/rake-0.9.2.2/bin/rake:33:in `<top (required)>'
/usr/local/bin/rake:19:in `load'
/usr/local/bin/rake:19:in `<main>'
Tidak ada yang menarik di log pengembangan.
Berikut adalah direktori eksekutif:
/usr/local/lib/ruby/gems/1.9.1/gems/execjs-1.3.0/lib/execjs>ls
disabled_runtime.rb module.rb ruby_rhino_runtime.rb version.rb
external_runtime.rb mustang_runtime.rb runtimes.rb
johnson_runtime.rb ruby_racer_runtime.rb
Saya juga sudah mencoba execjs-1.2.13. Permasalahan yang sama.
Jika saya berkomentar execjs.rb di bawah ini, saya dapat menjalankan rake tanpa kesalahan:
require "execjs/module"
require "execjs/runtimes"
module ExecJS
self.runtime #||= Runtimes.autodetect
end
Tapi kemudian saya tidak mendapatkan runtime.
Saya bisa melihat dari mana teks kesalahan berasal di runtimes.rb:
def self.autodetect
from_environment || best_available ||
raise(RuntimeUnavailable, "Could not find a JavaScript runtime. " +
"See https://github.com/sstephenson/execjs for a list of available runtimes.")
end
Jadi pertanyaannya adalah, karena saya sudah menginstal 'therubyracer', mengapa tidak bisa runtimes.rb menemukannya? Apakah eksekutif rusak?
Ini dia 'therubyracer':
/usr/local/lib/ruby/gems/1.9.1/gems/therubyracer-0.9.9
Bagaimana saya bisa memperbaikinya?
sudo apt-get install nodejs
memecahkan masalah saya.Di gemfile Anda tambahkan:
Untuk detail lebih lanjut: ExecJS dan tidak dapat menemukan runtime JavaScript
sumber
gem install therubyracer
terlebih dahulu.Gemfile
dan itu berhasil.Ini adalah tautan yang saya perlukan untuk memperbaiki masalah (instal nodejs): https://github.com/joyent/node/wiki/Installing-Node.js-via-package-manager
sumber
Ketika Anda membuat proyek kosong, baris ini dikomentari di Gemfile. Batalkan komentar dan bundel!
sumber
Saya punya masalah serupa di ubuntu 12.04. Menginstal Node.js memperbaikinya.
sumber
Saya menggunakan Ubuntu 11.10-32 bit dengan ruby 1.9.3p194, rails 3.2.3, gem 1.8.24. Menerima kesalahan Javascript yang sama saat menjalankan "script / rails console".
Namun melakukan "sudo apt-get install nodejs" telah menyelesaikan masalah saya.
sumber
Pengguna Fedora TIDAK AKAN dapat melakukan "yum install nodejs" sederhana karena konflik penamaan dan penempatan file yang serius yang mencegah paket ini bahkan tersedia melalui repositori Fedora.
Tampaknya ada setidaknya satu repositori alternatif yang tersedia dengan build alternatif yang mungkin berfungsi, tapi itu dua "alternatif" yang terlalu banyak bagi saya untuk bersedia menggunakannya - Saya mencari alternatif lain.
sumber
Coba instal NodeJS dan coba lagi.
https://github.com/joyent/node/wiki/Installing-Node.js-via-package-manager
sumber
Jika Anda berada di ubuntu
$ sudo apt-get install nodejs
Cobalah untuk tidak menggunakan sistem lain seperti Windows untuk pengembangan. Pikirkan bahwa hampir semua server di dunia adalah server Linux, jadi ketika Anda mencoba menggunakan aplikasi itu, akan lebih mudah jika Anda mengembangkannya di lingkungan Linux atau Unix juga.
sumber
Saya memiliki masalah yang sama pada server pementasan. Saya tidak punya masalah menjalankan tugas menyapu pada mesin pengembangan lokal saya, tetapi penggelaran ke server pementasan gagal dengan pesan kesalahan "Tidak dapat menemukan runtime JavaScript" saat mencoba menjalankan aset: prakompilasi tugas menyapu.
Tentu saja, therubyracer dan eksekutif ada di Gemfile saya, dan saya menggunakan versi terbaru. File Gemfile.lock saya cocok, dan saya selanjutnya memverifikasi versi dengan menjalankan bundle show .
Setelah mencari-cari di Google, saya akhirnya menghapus semua permata saya dan menginstal ulang mereka yang memperbaiki masalah. Saya masih tidak tahu apa penyebab dasarnya, tetapi mungkin ini akan membantu Anda.
Begini lingkungan saya, BTW:
sumber
Saya memiliki masalah yang sama. Menambahkan permata 'execjs' dan 'therubyracer' tidak berfungsi untuk saya. apt-get install nodejs - juga tidak berfungsi. Saya menggunakan ubuntu 64bit 10,04.
Tapi itu membantu saya sebagai berikut: 1. Saya membuat folder kosong (misalnya "java"). 2. Dari terminal dalam folder yang saya buat saya lakukan:
Setelah itu saya menjalankan "bundle install" seperti biasa (dari folder dengan proyek ruby & rails). Dan masalahnya terselesaikan. Ruby tidak perlu menginstal ulang.
sumber
Saya memiliki ini terjadi pada saya di mesin Windows saya, ternyata masalahnya sangat berbeda. Saya tidak sengaja menghapus beberapa jalur dari
%PATH%
variabel saya . Cukup restart perintah prompt menyelesaikannya. Sepertinya ada runtime JS di salah satu jalur yang hilang.sumber
Saya telah mencabut rambut saya dengan kesalahan ini beberapa kali. Saya telah berhasil membuatnya kadang-kadang hilang dengan memulai ulang Apache / Nginx.
Jadi saya memperbaikinya dengan cara yang sama seperti di atas, dengan menambahkan yang berikut ke file GEM:
dan kemudian saya HAPUS file gemfile.lock saya dan kemudian reran "bundle install". Saya hanya menemukan "bundle install" yang benar-benar menginstal pustaka yang benar, dll.
sumber
Di Ubuntu, saya harus
sudo apt-get update
dan kemudian instal nodejs bekerja.sumber
ketika saya menghasilkan rails g controller saya mendapat kesalahan yang sama. Setelah itu ketika melakukan perubahan berikut pada Gemfile (di rails 4) semuanya berjalan lancar. Perubahan yang saya lakukan adalah
permata 'execjs'
permata 'therubyracer', "0.11.4"
Setelah itu saya dapat menjalankan server dan dapat melakukan semua operasi dasar pada aplikasi.
sumber
tambahkan gemfile Anda yang ada di folder yang telah Anda buat: gem 'execjs' gem 'therubyracer'
sumber
Dalam kasus saya menjalankan
bundle
perintah melakukan trik. Saya percaya mereka menemukan satu sama lain.sumber
Saya punya masalah ini saat menggunakan RubyMine (6.3.3). Suatu hari saya mencoba menjalankan kode saya, tetapi tidak berhasil dan mengeluh karena tidak ditemukan runtime JavaScript. Saya bisa berlari
rails s
sekalipun. Perbaikan untuk saya adalah membuat konfigurasi Run baru. Tampaknya sangat aneh bahwa konfigurasi Run akan menjadi rusak.sumber