48 votes

Pourquoi rails nécessite-t-il le JavaScript Runtime ?

J'ai installé rails(v3) sur ma boîte Ubuntu Linux et l'installation a échoué en se plaignant du manque de javascript runtime. J'ai fait quelques recherches et il s'avère que rails nécessite l'installation d'un runtime javascript sur la plateforme qu'il utilise.

Alors que Windows est livré avec jscript par défaut. Ma boîte Ubuntu n'avait pas de runtime js et j'ai résolu le problème en installant node.js (V8).

A ma connaissance, un runtime js est nécessaire pour exécuter le code javascript et rails est juste un cadre web dans lequel le javascript est intégré. Les fichiers javascript ne s'exécutent que sur les machines clientes.

Donc, Pourquoi rails nécessite-t-il le JavaScript Runtime ?

3 votes

0 votes

Probablement pour CoffeeScript, si je devais deviner.

0 votes

Il y a une réponse mais je suis d'accord que c'est un peu illogique et ennuyeux des rails. Mais peu importe.

34voto

tybro0103 Points 13198

Regardez dans le Rails Asset Pipeline . Il fait des choses fantaisistes avec les fichiers JavaScript (et CSS). Notamment :

  1. Il convertit CoffeeScript en JavaScript
  2. Il combine tous les fichiers javascript en un seul
  3. Il réduit ce fichier

Le runtime JavaScript est utilisé pour la minification .

0 votes

@DavidWong Cela dépend si vous compilez vos ressources en production ou en développement.

9 votes

Il est intéressant de noter que le traitement de JavaScript (sans l'exécuter) permettrait pas principalement nécessitent un moteur d'exécution JavaScript. La raison pour laquelle le pipeline d'actifs Rails a besoin d'un moteur d'exécution JavaScript est qu'il effectue le traitement avec des outils tels que CoffeeScript et uglifier qui sont eux-mêmes mis en œuvre en JavaScript et qui nécessitent donc un runtime pour être utilisés.

0 votes

Comme souvent, la meilleure réponse se trouve dans les commentaires.

3voto

Ed Jones Points 186

Railsguides dit que ça a à voir avec la compression :

Vous aurez besoin d'un runtime supporté par ExecJS afin d'utiliser uglifier. Si vous utilisez Mac OS X ou Windows, vous avez un runtime JavaScript installé dans votre système d'exploitation. Consultez la documentation ExecJS pour obtenir des informations sur tous les moteurs d'exécution JavaScript pris en charge.

http://guides.rubyonrails.org/asset_pipeline.html#javascript-compression

Je pensais avoir vu Rails vérifier la validité des feuilles de style et du javascript dans votre application, mais peut-être que c'était juste SASS qui pré-réglait.

0 votes

Oui, probablement SASS ; Tout comme CoffeeScript, SASS est utilisé par défaut pour chaque fichier de feuille de style pré-créé dans /assets/stylesheets et vous pouvez y écrire des CSS sans même vous en rendre compte.

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