Question

J'ai donc passé les deux derniers jours à essayer d'obtenir que cela fonctionne avec pas de chance.La plupart des solutions que j'ai trouvé semblent fonctionner "ok" pour nœud de débogage des applications.Mais je n'ai pas eu beaucoup de chance de débogage grunt autonome.Je voudrais être en mesure de définir des points d'arrêt dans mon gruntfile et soit parcourir le code, soit avec le navigateur ou un IDE.

J'ai essayé ce qui suit:

MESSAGE D'ERREUR À L'AIDE D'UN NOEUD-INSPECTEUR

enter image description here

Donc, actuellement nœud-inspecteur se sent comme il a réussi à me faire le plus proche de ce que je veux.Pour arriver ici j'ai fait la suivante:

De mon grognement répertoire j'ai exécuté les commandes suivantes:

grunt node-inspector
node --debug-brk Gruntfile.js

Et puis à partir de là je suis allé à localhost:8080/debug?port=5858 pour déboguer mon Gruntfile.js.Mais comme je l'ai mentionné ci-dessus, dès que je touche F8 pour passer à point d'arrêt il plante avec l'erreur ci-dessus.Personne n'a eu de succès à l'aide de cette méthode pour essayer de déboguer un Gruntfile?Si loin de mes efforts de recherche je n'ai pas trouvé très bien documenté moyen de le faire.Donc j'espère que ce sera utile ou bénéfique de l'information pour les futurs utilisateurs.Aussi, je suis en utilisant Windows 7 par la voie.Merci à l'avance.

Mise à JOUR:

J'ai essayé ce qui suit, suggéré par @dylants avec pas de chance jusqu'à présent.

  1. Trouvé le grognement.fichier cmd sur windows machine située dans C:\Users\khollenbeck\AppData\Roaming\npm.Ouvert jusqu' grunt.cmd dossier et constaté la suite....

    enter image description here

  2. Cela me conduire à C:\Users\khollenbeck\AppData\Roaming\npm\node_modules\grunt-cli\bin qui contient un fichier appelé grunt.Et à partir de là, en haut du fichier.J'ai changé ce code #!/usr/bin/env node pour #!/usr/bin/env node --debug-brk

  3. Après avoir fait cette commande node-inspector C:\path\to\gruntfile grunt J'ai eu la suivante.

    Node Inspector v0.7.3 Visit http://localhost:8080/debug?port=5858 to start debugging

  4. Ensuite, j'ai couru le grunt commande grunt dir.(en laissant le serveur exécutant dans l'original invite de commande)

À partir d'ici que j'attendais Gruntfile.js pour apparaître dans la source de google chrome dev tools.J'ai aussi devrait être en mesure de définir des points d'arrêt à partir de là.Ce n'est pas arrivé.Au lieu de cela il a juste couru tout le chemin à travers la Gruntfile sans les casser ou de les charger dans le navigateur.

Edit:

Ah, je vois ce que j'ai fait de mal.Pour une raison que je ne nœud --debug-brk avec l'ajout du chemin C:\Users\khollenbeck\AppData oaming pm ode_modules\grunt-cli\bin\grognement.Son travail maintenant, merci beaucoup.Je m'excuse pour traîner cette sur pour si longtemps.Mais j'espère que ce sera utile pour d'autres utilisateurs de windows dans l'avenir.

Était-ce utile?

La solution

Ceci peut être accompli par le démarrage de node-inspector et de départ grunt en mode de débogage.Une fois cela fait, vous pouvez parcourir votre Gruntfile.js dans google Chrome, comme vous le feriez normalement.

le nœud de départ-l'inspecteur

Si vous ne l'avez pas déjà node-inspector, installez-la à l'aide de npm install -g node-inspector.Puis la lancer dans un terminal/invite de commande:

$ node-inspector
Node Inspector v0.7.3
Visit http://127.0.0.1:8080/debug?port=5858 to start debugging.

exécuter grunt en mode debug

Ensuite, localisez votre grunt script.C'est le fichier JavaScript qui est exécutée lorsque vous exécutez l' grunt commande à partir de la ligne de commande.Si vous avez installé grognement à l'échelle mondiale (à l'aide de npm install -g grunt-cli), alors il sera probablement dans /usr/bin ou /usr/local/bin pour *nix, ou des machines Mac.Pour les machines Windows, le grunt.cmd fichier de points à l'endroit où la grunt le script est situé.Le plus probable de la grunt le script est situé dans C:\Users\<username>\AppData\Roaming\npm\node_modules\grunt-cli\bin.

Une fois que vous avez trouvé l'emplacement du script, l'utilisation node --debug-brk pour exécuter ce script, commençant ainsi grunt en mode de débogage qui se brisent sur la première ligne de code dans le fichier.Ainsi, par exemple, imaginer le grognement script est situé à /usr/bin/grunt:

$ node --debug-brk /usr/bin/grunt 
debugger listening on port 5858

Vous saurez que vous avez réussi quand vous voyez debugger listening on port 5858 comme la sortie, ce qui signifie que le grognement script a suspendu l'exécution et est en attente d'être franchi avec le débogueur.

déboguer avec Chrome

Maintenant afficher le Chrome et le point à http://127.0.0.1:8080/debug?port=5858.Dans google Chrome, ouvrir et ajouter des points d'arrêt dans votre Gruntfile.js, et une étape à travers comme vous le feriez normalement.

Autres conseils

Pour démarrer le noeud à l'inspecteur que vous devez ne plus passer l'option --debug ou --debug-brk drapeau.Vous pouvez commencer directement à l'aide d' node-inspector et un chemin d'accès, comme vous le feriez normalement de départ exécuter un script à l'aide de la node commande.Cela devrait ouvrir automatiquement le webkit de l'inspecteur de chrome, et de faire une pause à la première ligne de l'exécution.Vous pouvez partir d'ici insérer vos points d'arrêt et de débogage comme d'habitude.

Comme mentionné ci-dessus, pour déboguer un grognement tâche que vous auriez à trouver votre Grunt exécutable à l'aide de $ which grunt sous Mac, vous ne savez pas à propos de Windows.Ensuite, vous devez copier le chemin, et l'utiliser comme le premier argument passé à nœud-debug, avec le deuxième argument de la tâche (et vous pouvez aussi inclure le grognement de la cible si nécessaire).Ainsi, par exemple, il peut ressembler à:

node-debug /usr/local/bin/grunt concat:dev

et à partir de là vous pouvez déboguer n'importe quel fichier qui sera exécuté pour la méthode concat tâche.Cela comprend les dépendances de grunt-concat qui serait en local node_modules.Parce que je trouve que c'est gênant pour copier et coller mon chemin de l'exécutable j'ai fait le plus simple Nœud de la cli pour résumé cette distance https://github.com/dtothefp/node-build-debug.Si vous installez ce à l'échelle mondiale (et bien-sûr nœud-inspecteur installées dans le monde), vous pouvez:

$ build-debug grunt concat:dev

Dans la nouvelle version du Nœud versions (à partir de 6,3 je pense), il y a un débogueur/inspecteur:

https://nodejs.org/en/docs/inspector/

Il suffit de commencer votre Grunt application (sur Windows):

node --inspect %APPDATA%\npm\node_modules\grunt-cli\bin\grunt

Si vous installez l'extension Chrome Nœud Inspecteur Manager, le DevTools va s'ouvrir automatiquement.

Sinon, vous pouvez ouvrir chrome://inspect et de se connecter à la session de débogage manuellement.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top