Est-il possible d'envoyer CoffeeScript pour le navigateur du client et de l'avoir compilé en JavaScript *il*?
Est-il un moyen d'envoyer CoffeeScript pour le navigateur du client et de l'avoir compilé en JavaScript il?
<script type="text/coffeescript">
square = (x) -> x * x
list = [1, 2, 3, 4, 5]
squares = (square num for num in list)
</script>
La CoffeeScript compilateur est écrit en JavaScript, je peux donc l'envoyer au client pour compiler/exécuter ce code dans le navigateur du client?
- Il est dit sur la page de couverture de la CoffeeScript site web: "La CoffeeScript est un compilateur lui-même écrit en CoffeeScript, à l'aide de la Jison analyseur générateur. La version ligne de commande de café est disponible en tant que Node.js utilitaire. La base compilateur cependant, ne dépend pas de Nœud, et peut être exécuté dans n'importe quel JavaScript de l'environnement, ou dans le navigateur (voir "Essayer CoffeeScript", ci-dessus). "
- Oui il le sait, mais il ne semble pas être recommandé, car il ne dit rien sur la façon de le faire.
Vous devez vous connecter pour publier un commentaire.
Jeremy a déjà celui-ci, mais permettez-moi d'ajouter quelques détails importants et des mises en garde:
coffee-script.js
est un gros fichier, de sorte que si vous êtes en train de laisser vos utilisateurs d'exécuter leurs propres CoffeeScript, vous ne devriez pas l'utiliser en production.squares
ne pas être visibles de l'extérieur du script. Au lieu de cela, vous voulez changer dewindow.squares = ...
.coffee-script.js
ne pas lire vos<script type="text/coffeescript>
les balises jusqu'à ce que après le document est prêt, en ce moment, votre JavaScripts avez déjà exécuté.XMLHTTPRequest
, ce qui signifie qu'ils doivent être hébergés sur le même domaine que votre site. (Certains navigateurs Chrome, à moins d'avoir un problème avecXMLHTTPRequest
s surfile://
chemins.)Ainsi, vous pouvez jeter un oeil à quelques solutions de rechange pour servir CoffeeScript compilé en JavaScript à la place. Si vous êtes en développement pour un Ruby ou Python serveur, il y a des plugins disponibles. J'ai essayé de les énumérer tous, à http://github.com/jashkenas/coffee-script/wiki/Web-framework-plugins.
Si vous êtes l'élaboration d'un site sans un backend, un outil que je recommande fortement de regarder est Intermédiaire de commerce, qui vous permet de travailler avec CoffeeScript (ainsi que Haml et Sass, si vous voulez) au cours du développement, puis de compiler et de rapetisser pour un déploiement en production.
La réponse est oui. Je ne vais pas répéter @Trevor est une excellente réponse, mais plutôt d'en donner un exemple de ce que vous pensez:
http://forgivingworm.wordpress.com/2010/09/27/running-coffeescript-in-browser/
Fondamentalement, vous
compilateur d'évaluer et de compiler tous les coffeescript dans l'ordre)
Exemple de code HTML ci-dessous
src
vous devez être en mesure d'accéder au fichier viaXMLHTTPRequest
, en particulier, il échoue sur les navigateurs avecfile://
.