Est-ce que quelqu'un a utilisé l' inspecteur de noeuds avec Grunt pour le débogage d'application? Sinon, pouvez-vous recommander un outil de débogage pour les applications basées sur Grunt?
Je travaille avec nodejs pour une application côté serveur et j'ai Grunt pour utiliser des tâches séparées (c'est parce que les utilisateurs peuvent exécuter des tâches séparément).
Merci d'avance
Pour exécuter grunt dans debug, vous devez passer explicitement le script grunt au noeud:
node-debug $(which grunt) task
Et mettre un debugger;
Dans votre tâche. node-inspector
ouvrira alors un navigateur avec des outils de débogage.
node-inspector
a ajouté la commande node-debug
, qui lance le nœud dans un état --debug
et ouvre le navigateur vers la page de l' node-inspector
des node-inspector
, s'arrêtant quand il frappe la première ligne du debugger
ou définit le point d'arrêt.
Sur Windows, les choses sont un peu plus compliquées. Consultez la réponse de @ e.gluhotorenko pour obtenir des instructions.
Courir
node --debug-brk c:\Users\username\AppData\Roaming\npm\node_modules\grunt-cli\bin\grunt taskname
De cmd dans le répertoire avec votre Gruntfile.js
. N'oubliez pas de mettre le debugger;
Alignement dans les endroits nécessaires.
Pour déboguer, nous devons modifier le fichier grunt sous bin. Sur ma machine, le grognement est installé globalement, alors je suis allé à / usr / local / lib / node_modules / grunt / bin J'ai ouvert le fichier et j'ai modifié:
#!/usr/bin/env node
À
#!/usr/bin/env node --debug-brk
–debug-brk va se briser sur la première ligne de javascript exécuté.
Faire cela seul n'est pas tout à fait suffisant, car vous ne pourrez pas trouver que vous êtes un fichier js de tâche grunt dans la liste déroulante de l'inspecteur de nœud, donc vous devez modifier le fichier que vous souhaitez déboguer en ajoutant un debugger;
Où vous voulez que le point d'arrêt se produise. Maintenant, vous pouvez cliquer sur continuer après la première pause, et vous allez sur vous debugger;
ligne
Jolie kludgy, mais c'est la seule façon d'avoir trouvé jusqu'à présent.
J'ai récemment créé un inspecteur de noeud grunt pour configurer facilement l'inspecteur des nœuds avec le reste de votre flux de travail grunt, vérifiez: https://github.com/ChrisWren/grunt-node-inspector
Voici une section d'un Gruntfile qui illustre comment vous pouvez déboguer une tâche grunée en utilisant grunt-node-inspector, grunt-concurrent et grunt-shell: https://github.com/CabinJS/Cabin/blob/master/Gruntfile. Js # L44-L77
J'ai fait une tâche pour exécuter mon application et lancer l'inspecteur de nœud. C'est bien mieux que la proposition actuelle, il suffit d'ajouter cette tâche dans gruntfile:
grunt.registerTask('debug', 'My debug task.', function() { var done = this.async(); grunt.util.spawn({ cmd: 'node', args: ['--debug', 'app.js'], opts: { //cwd: current workin directory } }, function (error, result, code) { if (error) { grunt.log.write (result); grunt.fail.fatal(error); } done(); }); grunt.log.writeln ('node started'); grunt.util.spawn({ cmd: 'node-inspector', args: ['&'], opts: { //cwd: current workin directory } }, function (error, result, code) { if (error) { grunt.log.write (result); grunt.fail.fatal(error); } done(); }); grunt.log.writeln ('inspector started'); });
Excellentes réponses ici. En 2017, maintenant vous pouvez le faire
node --inspect --debug-brk $(which grunt) taskName
Ce qui imprime quelque chose comme.
To start debugging, open the following URL in Chrome: chrome-devtools://devtools/bundled/inspector.html?experiments=true&v8only=true&ws=127.0.0.1:9229/232652c3-f63c-4b00-8de9-17dfad5db471
Ouvrez cette URL dans Chrome, et vous allez bien!
J'utilise Node 7.3.0 et je suis sur Mac. Vous devrez peut-être suivre certains conseils dans d'autres publications pour l'afficher sur Windows.