53 votes

Déboguer CoffeeScript ligne par ligne

Existe-t-il un moyen de déboguer CoffeeScript ligne par ligne ?

J'ai compris qu'il se compile en Javascript. Mais cela semble rendre le débogage difficile.

4 votes

Comme le JavaScript généré conserve l'indentation, les noms des fonctions et des variables, le débogage n'est pas aussi mauvais que la plupart des gens le pensent. Par ailleurs, la prise en charge des "cartes de source" est prévue (dans la prochaine version ?) dans CoffeeScript pour remédier à ce problème : coffeescriptlove.com/2012/04/cartes-sources-pour-la-cafeescript.html

1 votes

36voto

Miguel Ping Points 9013

Mise à jour : il y a actuellement un refonte du compilateur coffeescript qui génère cartes sources qui devrait vous permettre de déboguer votre coffeescript dans la plupart des versions récentes de Google Chrome (18 et plus je pense).

Je pense qu'il n'est pas encore prêt pour la production, mais il vaut la peine d'être mentionné.

1 votes

Attention, les cartes de sources ne sont disponibles que pour Chrome Canary, WebKit nightly et Firefox 23+. BTW, c'est la meilleure façon de déboguer du code javascript compilé côté client, donc +1 pour votre réponse ;)

0 votes

Disponible dans Chromium 39, version actuelle dans les dépôts Ubuntu Trusty. Et, bien, "non-production-readiness" ne limite pas son utilisation pendant le développement.

29voto

Lloyd Points 3597

Si vous exécutez coffeescript à partir du terminal, vous pouvez le déboguer ligne par ligne en utilisant inspecteur de nœuds en lançant votre script de cette manière :

coffee --nodejs --debug-brk yourscript.coffee

1 votes

Pour la connexion automatique au débogueur, j'utilise coffee --nodejs debug yourscript.coffee

14voto

leonm Points 4836

Pour l'instant, il est assez pénible de déboguer CoffeeScript. La plupart des gens utilisent de nombreux tests unitaires.

Des travaux sont en cours sur le débogage pour CoffeeScript, mais il faudra probablement attendre un certain temps avant de disposer d'un débogueur vraiment performant. Un exemple est http://www.infoq.com/news/2011/08/debug-languages-on-javascript-vm

16 votes

Des tests unitaires effrayants pour éviter un débogage heureux de la pile d'appels ? Aie, aie, aie !

0 votes

Je vais déposer le bougre ici : github.com/jkrems/bugger . Il propose un débogage pas à pas pour coffee-script 2.x. Pour coffee-script 1.x, il y a le strongloop-fork de node-inspector : github.com/strongloop/node-inspector

9voto

srus Points 26

Oui, avec inspecteur de nœuds :

npm install -g node-inspector

En mettant la déclaration debugger dans le code source de votre script, vous activerez un point d'arrêt. Tapez ensuite dans une console :

coffee -c -m myscript.coffee
node-debug myscript.js

L'inspecteur de nœuds prend en charge les cartes de sources dès le départ, de sorte qu'aucune configuration supplémentaire n'est nécessaire.

Pour plus d'informations voir ce post .

0 votes

C'est fascinant, mais comment faire pour qu'il prenne mon require 'something.coffee' en compte ?

5voto

lhk Points 1429

Coffeescript prend désormais en charge les cartes de sources : http://coffeescript.org/

Jetbrains, par exemple, prend en charge cette fonctionnalité : https://blog.jetbrains.com/ruby/2013/01/whats-mining-coffeescript-debugger/

4 votes

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