J'obtiens cette erreur:
râteau avorté! Impossible de trouver un runtime JavaScript. Voir https://github.com/sstephenson/execjs ,
J'ai déjà passé plus d'heures à chercher sur Google que je suis prêt à l'admettre. Je crois que c'est un bogue execJs.
De tous les messages, il s'agit d'un problème très courant avec les rails 3.1. Un runtime js est maintenant nécessaire pour ce qui est maintenant des gemmes standard comme coffee-script et sass.
La plupart de ces cas ont été résolus en ajoutant les gems 'execjs' et 'therubyracer' à l'application Gemfile, puis en exécutant 'bundle update' et / ou 'bundle install'. Mais pas pour moi.
Je suppose que j'ai eu de la chance. J'utilise les rails 3.1.3 / ruby 1.9 sur une ancienne version de Redhat Linux 4 (2.6.9-101.ELsmp) et gcc est 3.4.6.
Les autres correctifs rapportés n'aident pas, je ne peux pas installer 'nodejs', 'johnson' ou 'mustang', les autres runtimes execJs sont censés localiser et utiliser. Ils ne feront pas / n'installeront pas sur mon système.
Je dois résoudre le problème qui empêche les execJs de localiser «therubyracer». Voici le Gemfile (et l'installation du bundle dit 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
Et voici une trace:
~/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>'
Il n'y a rien d'intéressant dans le journal de développement.
Voici le répertoire execjs:
/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
J'ai également essayé execjs-1.2.13. Même problème.
Si je commente execjs.rb ci-dessous, je peux exécuter rake sans l'erreur:
require "execjs/module"
require "execjs/runtimes"
module ExecJS
self.runtime #||= Runtimes.autodetect
end
Mais alors je n'ai pas de runtime.
Je peux voir d'où vient le texte d'erreur dans 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
La question est donc, puisque j'ai installé 'therubyracer', pourquoi ne peut pas runtimes.rb le trouver? Les execJs sont-ils cassés?
Ici, il 'therubyracer':
/usr/local/lib/ruby/gems/1.9.1/gems/therubyracer-0.9.9
Comment puis-je réparer cela?
sudo apt-get install nodejs
résolu mon problème.Dans votre gemfile, ajoutez:
Pour plus de détails: ExecJS et impossible de trouver un runtime JavaScript
la source
gem install therubyracer
abord de courir .Gemfile
et cela a fonctionné.C'est le lien dont j'avais besoin pour résoudre le problème (installer nodejs): https://github.com/joyent/node/wiki/Installing-Node.js-via-package-manager
la source
Lorsque vous créez un projet vide, cette ligne est commentée dans Gemfile. Décommentez-le et regroupez-le!
la source
J'ai eu des problèmes similaires sur ubuntu 12.04. L'installation de Node.js l'a corrigé.
la source
J'utilise Ubuntu 11.10- 32 bits avec ruby 1.9.3p194, rails 3.2.3, gem 1.8.24. Recevait la même erreur Javascript lors de l'exécution de "script / rails console".
Cependant, faire un "sudo apt-get install nodejs" a résolu mon problème.
la source
Les utilisateurs de Fedora NE SERONT PAS capables de faire un simple "yum install nodejs" en raison de graves conflits de noms et de placement de fichiers qui empêchent même ce paquet d'être disponible via les référentiels Fedora.
Il y a apparemment au moins un dépôt alternatif disponible avec une version alternative qui peut fonctionner, mais c'est deux "alternatives" de trop pour que je veuille l'utiliser - je cherche une autre alternative.
la source
Essayez d'installer NodeJS et réessayez.
https://github.com/joyent/node/wiki/Installing-Node.js-via-package-manager
la source
Si vous étiez sur Ubuntu
$ sudo apt-get install nodejs
Essayez de ne pas utiliser d'autres systèmes comme Windows pour le développement. Pensez que presque tous les serveurs dans le monde sont des serveurs Linux, donc lorsque vous essayez de déployer cette application, ce sera plus facile si vous l'avez également développée sur un environnement Linux ou Unix.
la source
J'ai eu le même problème sur un serveur intermédiaire. Je n'ai eu aucun problème à exécuter des tâches de rake sur ma machine de développement locale, mais le déploiement sur le serveur intermédiaire a échoué avec le message d'erreur "Impossible de trouver un runtime JavaScript" lors de la tentative d'exécution des actifs: tâche de rake de précompilation .
Bien sûr, therubyracer et execjs étaient dans mon Gemfile, et j'utilisais les dernières versions. Mes fichiers Gemfile.lock correspondaient, et j'ai vérifié les versions en exécutant bundle show .
Après avoir cherché sur Google, j'ai fini par supprimer toutes mes gemmes et les réinstaller, ce qui a résolu le problème. Je ne sais toujours pas quelle était la cause profonde, mais peut-être que cela vous aidera.
Voici à quoi ressemble mon environnement, BTW:
la source
J'ai eu le même problème. L'ajout des gemmes «execjs» et «therubyracer» ne fonctionne pas pour moi. apt-get install nodejs - ne fonctionne pas non plus. J'utilise Ubuntu 10.04 64 bits.
Mais cela m'a aidé: 1. J'ai créé un dossier vide (par exemple "java"). 2. Depuis le terminal dans le dossier que j'ai créé, je fais:
Après cela, je lance "bundle install" comme d'habitude (à partir du dossier avec le projet ruby & rails). Et le problème a été résolu. Ruby n'a pas eu à réinstaller.
la source
Cela m'est venu à l'esprit sur ma machine Windows, il s'avère que le problème était assez différent. J'avais accidentellement supprimé certains chemins de ma
%PATH%
variable. Le simple redémarrage de l'invite de commande l'a résolu. Il semble qu'il y avait un runtime JS dans l'un de ces chemins manquants.la source
J'ai tiré mes cheveux avec cette erreur plusieurs fois. J'ai réussi à le faire disparaître parfois en redémarrant Apache / Nginx.
Je l'ai donc corrigé de la même manière que ci-dessus, en ajoutant ce qui suit au fichier GEM:
puis j'ai SUPPRIMÉ mon fichier gemfile.lock, puis j'ai relancé "bundle install". Je n'ai trouvé qu'alors que "bundle install" a réellement installé les bibliothèques correctes, etc.
la source
Sur Ubuntu, je devais le faire
sudo apt-get update
, puis l'installation de nodejs a fonctionné.la source
lorsque je génère un contrôleur de rails g, j'ai la même erreur. Après cela, quand faire les changements suivants sur Gemfile (dans les rails 4), tout s'est bien passé.
gem 'execjs'
gem 'therubyracer', "0.11.4"
Après cela, je peux exécuter le serveur et faire toutes les opérations de base sur l'application.
la source
ajoutez votre gemfile qui se trouve dans le dossier que vous avez créé: gem 'execjs' gem 'therubyracer'
la source
Dans mon cas, exécuter la
bundle
commande a fait l'affaire. J'espère qu'ils se trouveront alors.la source
J'ai eu ce problème lors de l'utilisation de RubyMine (6.3.3). Un jour, j'ai essayé d'exécuter mon code, mais cela n'a pas fonctionné et je me suis plaint de l'absence d'exécution JavaScript trouvée. J'ai pu courir
rails s
cependant. Le correctif pour moi était de créer une nouvelle configuration d'exécution. Cela semble vraiment bizarre que la configuration Run devienne corrompue.la source