Ich erhalte diesen Fehler:
Rechen abgebrochen! JavaScript-Laufzeit konnte nicht gefunden werden. Siehe https://github.com/sstephenson/execjs ,
Ich habe bereits mehr Stunden damit verbracht, Google zu durchsuchen, als ich zugeben möchte. Ich glaube, das ist ein ExecJs-Bug.
Von allen Beiträgen ist dies ein sehr häufiges Problem bei Schienen 3.1. Eine js-Laufzeit wird jetzt von Standardedelsteinen wie Kaffeeskript und Sass benötigt.
Die meisten dieser Fälle wurden gelöst, indem die Gems 'execjs' und 'therubyracer' zur App Gemfile hinzugefügt und dann 'Bundle Update' und / oder 'Bundle Install' ausgeführt wurden. Aber nicht für mich.
Ich glaube, ich hatte Glück. Ich verwende Rails 3.1.3 / Ruby 1.9 auf einer alten Version von Redhat Linux 4 (2.6.9-101.ELsmp) und gcc ist 3.4.6.
Andere gemeldete Fixes helfen nicht, ich kann 'nodejs', 'johnson' oder 'mustang' nicht installieren, die anderen Laufzeit-ExecJs sollen sie finden und verwenden. Sie werden nicht auf meinem System erstellt / installiert.
Ich muss das Problem beheben, das dazu führt, dass ExecJs 'therubyracer' nicht finden. Hier ist die Gemfile (und die Bundle-Installation sagt 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
Und hier ist eine Spur:
~/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>'
Das Entwicklungsprotokoll enthält nichts Interessantes.
Hier ist das Ausführungsverzeichnis:
/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
Ich habe auch execjs-1.2.13 ausprobiert. Gleiches Problem.
Wenn ich unten execjs.rb kommentiere, kann ich Rake ohne den Fehler ausführen:
require "execjs/module"
require "execjs/runtimes"
module ExecJS
self.runtime #||= Runtimes.autodetect
end
Aber dann bekomme ich keine Laufzeit.
Ich kann in runtimes.rb sehen, woher der Fehlertext kommt:
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
Die Frage ist also, warum ich runtimes.rb nicht finden kann, da ich 'therubyracer' installiert habe. Ist execJs kaputt?
Hier ist es 'therubyracer':
/usr/local/lib/ruby/gems/1.9.1/gems/therubyracer-0.9.9
Wie kann ich das beheben?
sudo apt-get install nodejs
löste mein Problem.Fügen Sie in Ihrer Gemfile Folgendes hinzu:
Für weitere Details: ExecJS und konnte keine JavaScript-Laufzeit finden
quelle
gem install therubyracer
zuerst zu laufen .Gemfile
und es hat funktioniert.Dies ist der Link, den ich zur Behebung des Problems benötigte (install nodejs): https://github.com/joyent/node/wiki/Installing-Node.js-via-package-manager
quelle
Wenn Sie ein leeres Projekt erstellen, wird diese Zeile in Gemfile kommentiert. Einfach auskommentieren und bündeln!
quelle
Ich hatte ähnliche Probleme mit Ubuntu 12.04. Die Installation von Node.js hat das Problem behoben.
quelle
Ich benutze Ubuntu 11.10-32 Bit mit Ruby 1.9.3p194, Rails 3.2.3, Gem 1.8.24. Erhielt den gleichen Javascript-Fehler beim Ausführen von "script / Rails Console".
Ein "sudo apt-get install nodejs" löste jedoch mein Problem.
quelle
Fedora-Benutzer können aufgrund schwerwiegender Namens- und Dateipositionierungskonflikte, die verhindern, dass dieses Paket überhaupt über die Fedora-Repositorys verfügbar ist, KEINE einfachen "yum install nodejs" ausführen.
Es gibt anscheinend mindestens ein alternatives Repository mit einem alternativen Build, das möglicherweise funktioniert, aber das sind zwei zu viele "Alternativen", als dass ich bereit wäre, es zu verwenden - ich suche nach einer anderen Alternative.
quelle
Versuchen Sie, NodeJS zu installieren, und versuchen Sie es erneut.
https://github.com/joyent/node/wiki/Installing-Node.js-via-package-manager
quelle
Wenn Sie auf Ubuntu waren
$ sudo apt-get install nodejs
Versuchen Sie, keine anderen Systeme wie Windows für die Entwicklung zu verwenden. Denken Sie, dass fast alle Server auf der Welt Linux-Server sind. Wenn Sie also versuchen, diese Anwendung bereitzustellen, ist es einfacher, wenn Sie diese auch in einer Linux- oder Unix-Umgebung entwickelt haben.
quelle
Ich hatte das gleiche Problem auf einem Staging-Server. Ich hatte keine Probleme beim Ausführen von Rake-Tasks auf meinem lokalen Entwicklungscomputer, aber die Bereitstellung auf dem Staging-Server schlug mit der Fehlermeldung "JavaScript-Laufzeit konnte nicht gefunden werden" fehl, während versucht wurde, die Assets auszuführen : Vorkompilieren Rakes-Task " .
Natürlich befanden sich Therubyracer und Execjs in meiner Gemfile, und ich verwendete die neuesten Versionen. Meine Gemfile.lock-Dateien stimmten überein, und ich überprüfte die Versionen weiter, indem ich die Bundle-Show ausführte .
Nachdem ich mich bei Google umgesehen hatte, löschte ich alle meine Edelsteine und installierte sie neu wodurch das Problem behoben wurde. Ich weiß immer noch nicht, was die Grundursache war, aber vielleicht hilft Ihnen das.
So sieht meine Umgebung übrigens aus:
quelle
Ich hatte das gleiche Problem. Das Hinzufügen der Edelsteine 'execjs' und 'therubyracer' funktioniert bei mir nicht. apt-get install nodejs - funktioniert auch nicht. Ich benutze 64bit Ubuntu 10.04.
Aber es hat mir Folgendes geholfen: 1. Ich habe einen leeren Ordner erstellt (zum Beispiel "Java"). 2. Von dem Terminal in dem Ordner, den ich erstellt habe, mache ich:
Danach starte ich wie gewohnt "bundle install" (aus Ordner mit Ruby & Rails Projekt). Und das Problem wurde gelöst. Ruby musste nicht neu installiert werden.
quelle
Ich hatte dies auf meinem Windows-Computer, stellte sich heraus, dass das Problem ganz anders war. Ich hatte versehentlich einige Pfade aus meiner
%PATH%
Variablen entfernt. Durch einfaches Neustarten der Eingabeaufforderung wurde das Problem behoben. Es scheint, als ob sich in einem dieser fehlenden Pfade eine JS-Laufzeit befand.quelle
Ich habe mir mit diesem Fehler einige Male die Haare ausgezogen. Ich habe es geschafft, es irgendwann verschwinden zu lassen, indem ich Apache / Nginx neu gestartet habe.
Also habe ich es auf die gleiche Weise wie oben behoben, indem ich der GEM-Datei Folgendes hinzugefügt habe:
und dann habe ich meine gemfile.lock-Datei gelöscht und dann "bundle install" erneut ausgeführt. Ich fand erst dann, dass "Bundle-Installation" tatsächlich die richtigen Bibliotheken usw. installiert hat.
quelle
Unter Ubuntu musste ich
sudo apt-get update
und dann funktionierte die NodeJS-Installation.quelle
Wenn ich Rails G Controller generiere, habe ich den gleichen Fehler erhalten. Danach, als die folgenden Änderungen an Gemfile (in Schienen 4) vorgenommen wurden, verlief alles reibungslos. Die Änderungen, die ich vorgenommen habe, waren
gem 'execjs'
gem 'therubyracer', "0.11.4"
Danach kann ich den Server ausführen und alle grundlegenden Operationen an der Anwendung ausführen.
quelle
füge deine gemfile hinzu, die sich in dem von dir erstellten Ordner befindet: gem 'execjs' gem 'therubyracer'
quelle
In meinem Fall hat das Ausführen des
bundle
Befehls den Trick getan. Ich vertraue darauf, dass sie sich dann finden.quelle
Ich hatte dieses Problem bei der Verwendung von RubyMine (6.3.3). Eines Tages habe ich versucht, meinen Code auszuführen, aber er hat nicht funktioniert und sich darüber beschwert, dass keine JavaScript-Laufzeit gefunden wurde. Ich konnte aber rennen
rails s
. Das Update für mich war das Erstellen einer neuen Run-Konfiguration. Scheint wirklich bizarr, dass die Run-Konfiguration beschädigt werden würde.quelle