Saya mencoba untuk menggunakan Mongoid / Rancangan Rails 3.1 Template ( Mongoid dan Rancangan ), dan saya terus mendapatkan kesalahan yang menyatakan ExecJS tidak dapat menemukan runtime JavaScript. Cukup adil ketika saya tidak menginstalnya, tetapi saya sudah mencoba menginstal Node.js , Mustang dan Ruby Racer , tetapi tidak ada yang berhasil.
Saya tidak dapat menemukan runtime JavaScript. Lihat sstephenson / ExecJS (GitHub) untuk daftar runtime yang tersedia ( ExecJS::RuntimeUnavailable
).
Apa yang harus saya lakukan agar ini berfungsi?
ruby-on-rails-3.1
execjs
javascript
srboisvert
sumber
sumber
Jawaban:
Pengguna Ubuntu
Saya di Ubuntu 11,04 dan memiliki masalah serupa. Menginstal Node.js memperbaikinya.
Pada Ubuntu 13.04 x64 Anda hanya perlu menjalankan:
Ini akan menyelesaikan masalah.
Pengguna CentOS / RedHat
sumber
Cukup tambahkan ExecJS dan Ruby Racer di file gem Anda dan jalankan
bundle install
setelahnya.Semuanya harus baik-baik saja setelahnya.
sumber
gem 'therubyracer'
Dalam file Gem Anda, tulis
dan kemudian jalankan
Semuanya bekerja dengan baik untuk saya :)
sumber
Saya memiliki masalah yang sama: aplikasi Rails 3.1 saya bekerja dengan baik di Windows tetapi mendapat kesalahan yang sama dengan OP ketika berjalan di Linux. Perbaikan yang berhasil bagi saya di kedua platform adalah menambahkan yang berikut ke saya
Gemfile
:Kuncinya adalah mengetahui itu
:platforms => :ruby
sebenarnya berarti hanya menggunakan permata ini dengan "C Ruby (MRI) atau Rubinius, tetapi BUKAN Windows."Mungkin nilai-nilai lain untuk
:platforms
dijelaskan dalam satubundler
halaman manual .FYI: Windows memiliki mesin JavaScript bawaan yang
execjs
dapat ditemukan. Di Linux tidak ada builtin meskipun ada beberapa tersedia yang dapat diinstal.therubyracer
adalah salah satunya. Lainnya terdaftar diexecjs
README.md .sumber
Menambahkan permata berikut ke Gemfile saya memecahkan masalah:
Kemudian gabungkan dependensi baru Anda:
sumber
Cara alternatif adalah dengan hanya bundel tanpa grup permata yang berisi hal-hal yang tidak Anda miliki.
Begitu juga:
Anda tidak harus memodifikasi Gemfile sama sekali, asalkan tentu saja Anda tidak melakukan hal-hal rantai aset - yang biasanya berlaku di lingkungan non-pengembangan. Bundle akan mengingat pengaturan '--without' Anda di file .bundle / config.
sumber
Tambahkan permata berikut dalam file permata Anda
dan lari
kamu selesai :)
sumber
Untuk amazon linux (AMI):
sumber
Saya dulu menambahkan Ruby Racer ke file Gem untuk memperbaikinya. Tapi hei, Node.js berhasil!
sumber
Saya memiliki kesalahan yang sama tetapi hanya pada server pementasan saya bukan lingkungan produksi saya. nodejs sudah diinstal pada kedua lingkungan.
Dengan mengetik:
Saya menemukan bahwa perintah node terletak di: / usr / bin / node pada produksi tetapi: / usr / local / bin / node dalam pementasan.
Setelah membuat symlink pada pementasan yaitu:
aplikasi kemudian bekerja dalam pementasan.
Tidak perlu repot.
sumber
nodejs
jugaJangan gunakan RubyRacer karena memori buruk. Menginstal Node.js seperti yang disarankan oleh beberapa orang di sini adalah ide yang lebih baik.
Daftar runtime yang tersedia ini yang dapat digunakan oleh ExecJs Library juga mendokumentasikan penggunaan Node.js
https://github.com/sstephenson/execjs
Jadi, Node.js bukan solusi berlebihan, dan jauh lebih baik daripada menggunakan RubyRacer.
sumber
FYI, ini memperbaiki masalah bagi saya ... ini adalah masalah pathing: http://forums.freebsd.org/showthread.php?t=35539
sumber
Saya mulai mendapatkan masalah ini ketika saya mulai menggunakan rbenv dengan Ruby 1.9.3 di mana sistem saya ruby 1.8.7. Permata dipasang di kedua tempat tetapi untuk beberapa alasan skrip rel tidak mengambilnya. Tetapi menambahkan "execjs" dan "therubyracer" ke Gemfile berhasil.
sumber
Di file gem Anda Batalkan komentar pada baris ini.
19 # permata 'therubyracer', platform:: ruby
Dan jalankan bundle install
Anda siap bekerja. :)
sumber
Mencoba melakukan debug di RubyMine menggunakan Ubuntu 18.04, Ruby 2.6. *, Rails 5, & RubyMine 2019.1.1 , saya mengalami masalah yang sama.
Untuk mengatasi masalah ini, saya menghapus komentar
mini_racer
baris dari sayaGemfile
dan kemudian berlaribundle
:Mengubah:
sumber
Saya menginstal
node
melalui nvm dan mengalami masalah ini ketika menggunakan Capistrano. Capistrano tidak memuat nvm secara otomatis karena berjalan non-interaktif.Untuk memperbaikinya, cukup pindahkan garis yang ditambahkan nvm
~/.bashrc
ke atas Anda. File kemudian akan terlihat seperti ini:sumber