101 votes

Utilisation de l'inspecteur de nœud avec les tâches Grunt

Quelqu'un a utilisé node-inspector avec Grunt pour le débogage des applications? Si non, Pouvez-vous recommander un outil de débogage pour Grunt apps?

Je travaille avec nodejs pour un côté serveur d'application et j'ai Grognement d'utiliser séparé les tâches (c'est parce que les utilisateurs peuvent exécuter des tâches séparément).

Merci d'avance

135voto

David Souther Points 4414

Pour exécuter grunt dans le débogage, vous devez passer le grognement script nœud explicitement:

node-debug $(which grunt) task

et de mettre un debugger; ligne dans votre tâche. node-inspector sera alors ouvrez un navigateur avec des outils de débogage.

Modifier Le 28 Février 2014

node-inspector a ajouté la commande node-debug, qui lance un nœud dans un --debug de l'etat et ouvre le navigateur de l' node-inspector page, s'arrêtant quand il frappe le premier debugger ligne ou définir un point d'arrêt.

39voto

e.gluhotorenko Points 799

Solution Windows

Courir

 node --debug-brk c:\Users\username\AppData\Roaming\npm\node_modules\grunt-cli\bin\grunt taskname
 

depuis cmd dans un répertoire avec votre Gruntfile.js . Ne pas oublier, bien sûr, mettre debugger; ligne aux endroits nécessaires.

7voto

user1577390 Points 69

Pour déboguer, il faut modifier le grognement fichier bin. Sur ma machine, grunt est installée à l'échelle mondiale, alors je suis allé dans /usr/local/lib/node_modules/grunt/bin J'ai ouvert le fichier et modifié:

#!/usr/bin/env node

Pour

#!/usr/bin/env node --debug-brk

--debug-brk s'arrête sur la première ligne de javascript couru.

Le faire seul n'est pas assez bien, puisque vous ne serez pas en mesure de trouver vous êtes grunt tâche fichier js dans le menu déroulant dans le nœud de l'inspecteur, de sorte que vous devez modifier le fichier qui vous intéresse dans le débogage par l'ajout d' debugger; où vous voulez que le point d'arrêt à arriver. Maintenant, vous pouvez cliquez sur continuer après la première pause, et vous aurez briser sur vous êtes en debugger; ligne

Assez encombrants, mais c'est le seul moyen que j'ai trouvé jusqu'à présent.

6voto

ChrisWren Points 281

J'ai récemment créé grunt-node-inspector facilement configurer le nœud-inspecteur avec le reste de votre grognement de flux de travail, check it out: https://github.com/ChrisWren/grunt-node-inspector

Voici un article d'un Gruntfile qui illustre comment vous pouvez déboguer un grognement tâche à l'aide de grunt-node-inspector, grunt-simultanées, et grunt-shell: https://github.com/CabinJS/Cabin/blob/master/Gruntfile.js#L44-L77

4voto

olivier dufour Points 99

J'ai effectué une tâche pour exécuter mon application et lancer nœud-inspecteur. 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');
    });
 

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