259 votes

Rails - Impossible de trouver un runtime JavaScript ?

J'ai créé un nouveau projet Rails en utilisant rails 3.1.0.rc4 sur ma machine locale mais lorsque j'essaie de démarrer le serveur, j'obtiens : Impossible de trouver un runtime JavaScript. Voir ici pour obtenir la liste des temps d'exécution disponibles. ( ExecJS::RuntimeUnavailable )

Remarque : il ne s'agit pas de Heroku.

1 votes

487voto

theTuxRacer Points 4372

L'installation d'une bibliothèque d'exécution javascript telle que nodejs résout ce problème.

Pour installer nodejs sur ubuntu, vous pouvez taper la commande suivante dans le terminal :

sudo apt-get install nodejs

Pour installer nodejs sur des systèmes utilisant yum, tapez ce qui suit dans le terminal :

yum -y install nodejs

14 votes

Pour moi aussi. sudo apt-get install nodejs .

1 votes

Je recommande maintenant de suivre cette voie. Voir ci-dessus.

1 votes

Suppression de la note dans la réponse concernant l'installation de node via le centre logiciel d'Ubuntu car il n'y figurait pas (Ubuntu 12.04)

45voto

Gazler Points 23588

Note de Michael 28/12/2011 - J'ai changé mon acceptation de ceci (rubytheracer) à ci-dessus (nodejs) comme therubyracer a des problèmes de taille de code. Heroku est maintenant fortement le décourager . Il fonctionnera, mais peut avoir des problèmes de taille et de performance.

Si vous ajoutez un runtime, tel que therubyracer à votre Gemfile et exécutez le bundle puis essayez de démarrer le serveur, cela devrait fonctionner.

gem 'therubyracer'

Un runtime javascript est nécessaire pour compiler coffeescript et aussi pour uglifier.

Mise à jour, 12/12/2011 : Certaines personnes ont trouvé des problèmes avec rubytheracer (je pense que c'était surtout la taille du code). Ils ont trouvé que execjs (ou nodejs) fonctionnait tout aussi bien (sinon mieux) et était beaucoup plus petit.

n.b. Coffeescript est devenu un standard pour la version 3.1+.

3 votes

Il est également utilisé pour la compression de JavaScript avec UglifyJS. Notez que la manière recommandée d'effectuer ces tâches est de les faire en développement avec rake assets:precompile et ajoutez ensuite des ressources à votre dépôt ; Rails 3.1 ne nécessitera pas de moteur d'exécution JavaScript en production au moment de sa sortie.

1 votes

J'ai marqué ceci comme étant la réponse. C'était un peu difficile car cela n'a pas réglé le problème tout de suite et j'ai également essayé de nouvelles applications avec 3.0.9 et 3.0.4 mais j'ai eu des erreurs (différentes) avec elles. Finalement, j'ai refait une nouvelle application - et j'ai également obtenu rails rc5 avec elle et ajouté le rubytheracer et fait une mise à jour de bunlde et enfin je peux obtenir le serveur en marche. Merci Gazier !

1 votes

L'application Rails standard qui est créée utilise uglifier, qui nécessite aussi cela, je crois.

28voto

Ramiz Raja Points 1558

Ajoutez les gemmes suivantes dans votre fichier gem

gem 'therubyracer'
gem 'execjs'

et exécuter

bundle install

OU

Installer Node.js pour le fixer définitivement pour tous les projets.

1 votes

Cela a fonctionné pour moi (Linux Mint 16), je pense que dans la dernière version de rails il manque certaines des dépendances.

15voto

flyingsnow Points 131

sudo apt-get install nodejs ne fonctionne pas pour moi. Pour le faire fonctionner, je dois faire ce qui suit :

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

J'espère que cela aidera quelqu'un qui a le même problème que moi.

0 votes

Ne fonctionne pas pour moi le add-apt-repository ppa:chris-lea/node.js

0 votes

@jpganz18 essayez ceci d'abord : sudo apt-get install software-properties-common Si cela ne résout pas le problème, vous pouvez l'installer manuellement : blog.anantshri.info/howto-add-ppa-in-debian

6voto

Yang Points 185

Sur la plate-forme Windows, j'ai également rencontré ce problème. La solution pour moi est d'ajouter

C:\Windows\System32

au PATH

et redémarrez l'ordinateur.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X