2 votes

Meteor CoffeeScript génère des fichiers en double

Je viens de commencer à explorer Meteor, et dès le départ, j'ai quelque chose qui me laisse perplexe :

1) Je l'ai installé et j'ai exécuté meteor add coffeescript .

2) J'ai converti le fichier myapp.js en .coffee.

3) J'ai enregistré le fichier.

À ce stade, Meteor génère un nouveau fichier myapp.js en compilant le fichier coffeescript. Ok, ça semble logique.

4) J'ai couru meteor . Je vois l'application à localhost:3000 Cependant, si j'appuie sur le bouton, l'événement de clic du bouton se déclenche deux fois : une fois à partir de myapp.js et une fois de myapp.coffee .

Juste pour voir un test, j'ai ajouté ceci :

Template.hello.events "click input": ->
  # template data, if any, is available in 'this'
  console.log "You pressed the button"  if typeof console isnt "undefined"
  $('body').append('<div>test</div>')

Lorsque je clique sur le bouton, deux divs sont ajoutés.

Maintenant, si je supprime le compilateur myapp.js le message "vous avez appuyé sur le bouton" ne se déclenche qu'une seule fois, et une seule division est ajoutée à la page. Cependant, si je sauvegarde le fichier .coffee, un nouveau fichier .js est généré à chaque fois, et maintenant tout le JS s'exécute deux fois.

Comment utiliser CoffeeScript avec Meteor pour que votre code ne s'exécute qu'une fois ?

2voto

Jim Mack Points 1417

Lorsque j'utilise webstorm, un éditeur de texte commercial, j'ai le choix entre avoir un filewatcher qui génère automatiquement des js à partir de coffeescript ou non. S'il autogénère, c'est votre éditeur qui produit du js, mais Meteor pense qu'il doit chercher du js ou du café.

En bref, supprimez probablement les observateurs de fichiers/convertisseurs de coffeescript de votre éditeur de texte pour les projets coffeescript. Ou bien, supprimez le paquet coffeescript de meteor. Pas les deux

0voto

Akshat Points 25702

Vous ne vous êtes peut-être pas débarrassé de l'original. myapp.js si vous êtes certain que l'autre a été lancé à partir d'un fichier appelé myapp.js

Les fichiers js compilés par coffeescript doivent être les suivants myapp.coffee.js (que vous ne pouvez voir que dans l'inspecteur web de chrome).

Vous devez également ne pas voir ces fichiers js compilés dans le répertoire de votre projet, s'ils s'y retrouvent lorsque vous enregistrez votre .coffee sont d'autres, ils sont les fichiers voyous, peut-être de votre code ide ?

Meteor compile bien le coffeescript en js mais le fait dans un répertoire temporaire dans l'espace caché. .meteor répertoire. Si vous utilisez coffeescript, meteor veut que l'expérience soit comme s'il s'agissait de javascript, vous ne remarquerez donc pas de fichiers supplémentaires.

0voto

Andrew Points 14110

Donc, j'ai couru meteor remove coffeescript y meteor add coffeescript et maintenant cela fonctionne comme prévu, pas de fichiers en double. C'est un peu étrange, mais au moins ça marche !

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