Rails - Tidak dapat menemukan runtime JavaScript?

247

Saya membuat proyek Rails baru menggunakan rails 3.1.0.rc4pada mesin lokal saya tetapi ketika saya mencoba untuk memulai server saya dapatkan: Tidak dapat menemukan runtime JavaScript. Lihat di sini untuk daftar runtime yang tersedia. ( ExecJS::RuntimeUnavailable)

Catatan: Ini bukan tentang Heroku.

Michael Durrant
sumber
1
kemungkinan duplikat dari ExecJS dan tidak dapat menemukan runtime JavaScript
Lucio

Jawaban:

475

Menginstal pustaka runtime javascript seperti nodejs memecahkan masalah ini

Untuk menginstal nodejs di ubuntu, Anda dapat mengetik perintah berikut di terminal:

sudo apt-get install nodejs

Untuk menginstal nodejs pada sistem menggunakan yum, ketikkan yang berikut di terminal:

yum -y install nodejs
theTuxRacer
sumber
14
untuk saya juga. sudo apt-get install nodejs.
Hertzel Guinness
1
Sekarang saya merekomendasikan ini sebagai rute yang harus diambil. Lihat di atas.
Michael Durrant
1
catatan dihapus dalam jawaban tentang menginstal node melalui pusat perangkat lunak Ubuntu karena tidak ada di sana (Ubuntu 12.04)
Michael Durrant
1
Ubuntu 64 memberikan masalah besar untuk menginstal therubyracer, bahkan versi terakhir, 0.11.1, tidak menyelesaikannya. Jawaban ini membantu saya dalam hal itu.
Eduardo
@ gwho Ada jawaban di bawah ini oleh Yang. Lihatlah itu.
theTuxRacer
44

Catatan dari Michael 12/28/2011 - Saya telah mengubah penerimaan saya dari ini (rubytheracer) ke atas (nodejs) karena therubyracer memiliki masalah ukuran kode. Heroku sekarang sangat tidak mendukungnya . Ini akan 'berfungsi' tetapi mungkin memiliki masalah ukuran / kinerja.

Jika Anda menambahkan runtime, seperti therubyracer ke Gemfile Anda dan menjalankan bundle kemudian coba dan mulai server itu seharusnya berfungsi.

gem 'therubyracer'

Diperlukan runtime javascript untuk mengkompilasi naskah kopi dan juga untuk uglifier.

Pembaruan, 12/12/2011: Beberapa orang menemukan masalah dengan rubytheracer (saya pikir itu sebagian besar ukuran kode). Mereka menemukan execjs (atau nodejs) bekerja dengan baik (jika tidak lebih baik) dan jauh lebih kecil.

nb Coffeescript menjadi standar untuk 3.1+

Gazler
sumber
3
Ini juga digunakan untuk mengompresi JavaScript dengan UglifyJS. Perhatikan bahwa cara yang disarankan untuk melakukan tugas-tugas ini adalah melakukannya dalam pengembangan dengan rake assets:precompiledan kemudian menambahkan aset ke repositori Anda; Rails 3.1 sebenarnya tidak memerlukan runtime JavaScript dalam produksi pada saat rilis.
whitequark
1
Saya telah menandai ini sebagai jawabannya. Itu agak berbulu karena ini tidak segera memperbaikinya dan saya juga mencoba aplikasi baru dengan 3.0.9 dan 3.0.4 tetapi mendapat (berbeda) kesalahan dengan mereka. Akhirnya saya membuat aplikasi baru lagi - dan juga mendapatkan rails rc5 dan menambahkan rubytheracer dan melakukan pembaruan bunlde dan akhirnya saya bisa menjalankan dan menjalankan server. Gazier terima kasih!
Michael Durrant
1
btw Aplikasi rel standar yang dibuat memang menggunakan uglifier yang juga mengharuskan ini saya percaya.
Michael Durrant
1
Saya pikir praktik yang baik bisa dimasukkan ke dalam gemfile di bawah grup pengembang, kira-kira group :development do gem 'therubyracer' end
eveevans
@ Eveevans runtime tidak dapat ditemukan kesalahan. Aset dikompilasi dalam lingkungan produksi sehingga therubyracer harus berada di bawah blok produksi.
lulalala
27

Tambahkan permata berikut dalam file permata Anda

gem 'therubyracer'
gem 'execjs'

dan lari

bundle install

ATAU

Instal Node.js untuk memperbaikinya secara permanen untuk semua proyek.

Ramiz Raja
sumber
1
Ini bekerja untuk saya (Linux Mint 16), saya berpikir bahwa dalam versi terbaru dari rel baik kehilangan beberapa dependensi.
geminiCoder
15

sudo apt-get install nodejstidak bekerja untuk saya. Untuk membuatnya berfungsi, saya harus melakukan hal berikut:

sudo apt-get install python-software-properties
sudo add-apt-repository ppa:chris-lea/node.js
sudo apt-get update
sudo apt-get install nodejs

Semoga ini akan membantu seseorang yang memiliki masalah yang sama dengan saya.

flyingsnow
sumber
doenst work for me ppa add-apt-repositori: chris-lea / node.js
jpganz18
@ jpganz18 coba ini dulu: sudo apt-get install software-properties-common Jika ini tidak menyelesaikan masalah, Anda dapat menginstalnya secara manual: blog.anantshri.info/howto-add-ppa-in-debian
Robin
6

Di platform windows, saya juga menemui masalah itu. Solusi bagi saya adalah menambahkan

C:\Windows\System32

ke PATH

dan nyalakan kembali komputer.

Yang
sumber
3

Saya memiliki masalah ini pada mesin Windows dan menginstal node.js adalah solusi yang akhirnya bekerja untuk saya. Ini terjadi setelah mencoba beberapa rute lain termasuk mencoba membuat 'therubyracer' bekerja. Meskipun github untuk node.js menunjukkan bahwa pemasangan di windows masih tidak stabil, situs web di http://nodejs.org/ memiliki penginstal Windows yang berfungsi dengan baik.

Edub Kendo
sumber
1

Jika semuanya gagal, Anda dapat mencoba

# aptitude instal nodejs

sebagai root. Anda dapat menguji instal dengan perintah berikut:

# node -v

Jika Anda ingin menginstal NPM, silakan merujuk tautan berikut . Semoga ini bisa membantu.

pengguna3576216
sumber
0

Pada CentOS 6.5, berikut ini bekerja untuk saya:

sudo yum install -y nodejs
Bob Stine
sumber
0

Instal runtime Javascript

Kesalahan ini disebabkan oleh tidak adanya runtime Javascript di mesin lokal Anda. Untuk mengatasi ini, Anda harus menginstal NodeJS.

Anda dapat menginstal NodeJS melalui Node Version Manager atau nvm :

Pertama, instal nvm:

$ curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.31.0/install.sh | bash

Instal Node melalui nvm:

nvm install 5.9.1

Ini akan menginstal versi 5.9.1Node.

Gnerkus
sumber
0

Saya mengalami masalah ini menggunakan Phusion Passenger (berjalan sebagai modul nginx) di server Redhat. Kami sudah menginstal runtime Javascript. Aplikasi Rails lain di direktori induk yang sama berfungsi dengan baik.

Ternyata kami memiliki masalah izin. Jalankan "ls-l" dan lihat apakah folder tersebut memiliki pemilik dan grup yang sama dengan aplikasi yang berfungsi pada sistem. Saya harus menjalankan chown dan chgrp pada folder (dengan saklar rekursif) untuk memperbaikinya.

Patrick
sumber
0

Saya harap Anda memiliki nodejs yang sudah diinstal || nmv.

Solusi saya tidak memerlukan setup permata atau menginstal 'node with sudo apt" ketika Anda sudah memiliki nvm.

Yang Anda butuhkan hanyalah mengedit DesctopEntry dari RubyMine. untuk itu kita akan memiliki langkah-langkah kecil:

  1. Pergi ke usr/share/applications
  2. Buka di editor apa saja (saya menggunakan vim) Rubymine DesktopEntryvim RubyMine
  3. Edit baris 6 (dimulai dengan Exec). Anda harus menambahkan ke awal /bin/bash -i -c. Jadi baris Anda akan terlihat seperti ini Exec=/bin/bash -i -c "/home/USERNAME/rubymine/RubyMine-2019.1.2/bin/rubymine.sh" %f
  4. Selesai! Kamu mulia!

Sebagai manfaat, semua variabel lingkungan Anda sekarang tersedia untuk RubyMine. Jadi Anda tidak merasa sakit dengan menambahkannya.

Ivan Kevich
sumber