Rails - Konnte keine JavaScript-Laufzeit finden?


247

Ich habe ein neues Rails-Projekt rails 3.1.0.rc4auf meinem lokalen Computer erstellt, aber wenn ich versuche, den Server zu starten, wird Folgendes angezeigt: Es konnte keine JavaScript-Laufzeit gefunden werden. Siehe hier für eine Liste der verfügbaren Laufzeiten. ( ExecJS::RuntimeUnavailable)

Hinweis: Hier geht es nicht um Heroku.


Antworten:


475

Die Installation einer Javascript-Laufzeitbibliothek wie nodejs löst dieses Problem

Um nodejs auf ubuntu zu installieren, können Sie den folgenden Befehl in das Terminal eingeben:

sudo apt-get install nodejs

Geben Sie Folgendes in das Terminal ein, um nodejs auf Systemen mit yum zu installieren:

yum -y install nodejs

14
für mich auch. sudo apt-get install nodejs.
Hertzel Guinness

1
Ich empfehle dies jetzt als Route. Siehe oben.
Michael Durrant

1
Hinweis in der Antwort über die Installation des Knotens über das Ubuntu-Software-Center entfernt, da er nicht vorhanden war (Ubuntu 12.04)
Michael Durrant

1
Ubuntu 64 bereitet große Probleme bei der Installation des Theryracers. Nicht einmal die letzte Version 0.11.1 hat dies behoben. Diese Antwort hat mir dabei geholfen.
Eduardo

@gwho Es gibt eine Antwort von Yang. Schau dir das an.
TheTuxRacer

44

Anmerkung von Michael 28.12.2011 - Ich habe meine Akzeptanz von diesem (Rubytheracer) auf oben (NodeJS) geändert, da der Subrayracer Probleme mit der Codegröße hat. Heroku rät jetzt stark davon ab . Es wird "funktionieren", kann aber Größen- / Leistungsprobleme haben.

Wenn Sie Ihrer Gemfile eine Laufzeit hinzufügen, z. B. therubyracer, und das Bundle ausführen, versuchen Sie, den Server zu starten, der funktionieren soll.

gem 'therubyracer'

Zum Kompilieren von Coffeescript und auch für Uglifier ist eine Javascript-Laufzeit erforderlich.

Update, 12.12.2011: Einige Leute haben Probleme mit Rubytheracer gefunden (ich denke, es war hauptsächlich Codegröße). Sie fanden, dass execjs (oder nodejs) genauso gut funktionierten (wenn nicht besser) und viel kleiner waren.

nb Coffeescript wurde zum Standard für 3.1+


3
Es wird auch zum Komprimieren von JavaScript mit UglifyJS verwendet. Beachten Sie, dass die empfohlene Methode zum Ausführen dieser Aufgaben darin besteht, sie in der Entwicklung mit rake assets:precompileIhrem Repository auszuführen und anschließend Assets hinzuzufügen. Rails 3.1 benötigt zum Zeitpunkt der Veröffentlichung keine JavaScript-Laufzeit in der Produktion.
Whitequark

1
Ich habe dies als Antwort markiert. Es war ein bisschen haarig, da dies nicht sofort behoben wurde und ich auch neue Apps mit 3.0.9 und 3.0.4 ausprobierte, aber (andere) Fehler mit ihnen bekam. Endlich habe ich wieder eine neue App gemacht - und auch Rails RC5 damit bekommen und den Rubytheracer hinzugefügt und ein Bunlde-Update gemacht und endlich kann ich den Server zum Laufen bringen. Danke Gazier!
Michael Durrant

1
Übrigens: Die Standard-Rails-App, die erstellt wird, verwendet uglifier, was meiner Meinung nach auch dies erfordert.
Michael Durrant

1
Ich denke, eine gute Praxis könnte es in die Gemfile unter der Entwicklungsgruppe setzen, so etwas wie group :development do gem 'therubyracer' end
Evaevans

@eveevans Die Laufzeit kann nicht gefunden werden. Das Asset wird in der Produktionsumgebung kompiliert, sodass sich der Subrayracer unter dem Produktionsumgebungsblock befinden muss.
Lulalala

27

Fügen Sie Ihrer Edelsteindatei folgende Edelsteine ​​hinzu

gem 'therubyracer'
gem 'execjs'

und Renn

bundle install

ODER

Installieren Sie Node.js , um es für alle Projekte dauerhaft zu beheben.


1
Das hat bei mir funktioniert (Linux Mint 16), ich denke, dass in der neuesten Version von Rails entweder einige der Abhängigkeiten fehlen.
geminiCoder

15

sudo apt-get install nodejsfunktioniert bei mir nicht Damit es funktioniert, muss ich Folgendes tun:

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

Hoffe, das hilft jemandem, der das gleiche Problem wie ich hat.


Ich arbeite nicht für das Add-Apt-Repository ppa: chris-lea / node.js
jpganz18

@ jpganz18 versuchen Sie dies zuerst: sudo apt-get install software-properties-common Wenn dies das Problem nicht löst, können Sie es manuell installieren: blog.anantshri.info/howto-add-ppa-in-debian
Robin

6

Auf der Windows-Plattform bin ich auch auf dieses Problem gestoßen. Die Lösung für mich ist einfach hinzufügen

C:\Windows\System32

zum Pfad

und starten Sie den Computer neu.


3

Ich hatte dieses Problem auf einem Windows-Computer und die Installation von node.js war die Lösung, die schließlich für mich funktioniert hat. Dies geschah, nachdem mehrere andere Routen ausprobiert wurden, einschließlich des Versuchs, "Therubyracer" zum Laufen zu bringen. Obwohl der Github für node.js darauf hinweist, dass die Installation unter Windows immer noch instabil ist, hatte die Website unter http://nodejs.org/ ein Windows-Installationsprogramm, das perfekt funktionierte.



1

Wenn alles fehlschlägt, können Sie es versuchen

# aptitude install nodejs

als Wurzel. Sie können Ihre Installation mit dem folgenden Befehl testen:

# Knoten -v

Wenn Sie NPM installieren möchten, lesen Sie bitte den folgenden Link . Ich hoffe es hilft.


0

Unter CentOS 6.5 hat Folgendes für mich funktioniert:

sudo yum install -y nodejs

0

Installieren Sie eine Javascript-Laufzeit

Der Fehler wird durch das Fehlen einer Javascript-Laufzeit auf Ihrem lokalen Computer verursacht. Um dies zu beheben, müssen Sie NodeJS installieren.

Sie können NodeJS über den Node Version Manager oder nvm installieren :

Installieren Sie zunächst nvm:

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

Installieren Sie den Knoten über nvm:

nvm install 5.9.1

Dadurch wird die Version 5.9.1von Node installiert .


0

Ich bin mit Phusion Passenger (als Nginx-Modul ausgeführt) auf einem Redhat-Server auf dieses Problem gestoßen. Wir hatten bereits eine Javascript-Laufzeit installiert. Andere Rails-Apps im selben übergeordneten Verzeichnis funktionierten einwandfrei.

Es stellte sich heraus, dass wir ein Berechtigungsproblem hatten. Führen Sie "ls -l" aus und prüfen Sie, ob der Ordner denselben Eigentümer und dieselbe Gruppe wie andere funktionierende Apps auf dem System hat. Ich musste chown und chgrp für den Ordner (mit dem rekursiven Schalter) ausführen, um das Problem zu beheben.


0

Ich hoffe, Sie haben nodejs || vorinstalliert nmv.

Meine Lösung erfordert keinsudo apt Gem- Setup oder die Installation von 'node with ", wenn Sie bereits über nvm verfügen.

Sie müssen lediglich DesctopEntry von RubyMine bearbeiten. dafür werden wir diese kleinen Schritte haben:

  1. Gehe zu usr/share/applications
  2. Öffnen Sie in einem beliebigen Editor (ich benutze vim) Rubymine DesktopEntryvim RubyMine
  3. Bearbeiten Sie Zeile 6 (beginnt mit Exec). Sie sollten zum Anfang hinzufügen /bin/bash -i -c. Ihre Linie sollte also so aussehen Exec=/bin/bash -i -c "/home/USERNAME/rubymine/RubyMine-2019.1.2/bin/rubymine.sh" %f
  4. Getan! Du bist herrlich!

Als Vorteil sind jetzt alle Ihre Umgebungsvariablen für RubyMine verfügbar. Sie haben also keine Schmerzen, wenn Sie sie hinzufügen.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.