Comment déboguer un Gruntfile avec des points d'arrêt l'aide d'un noeud-inspecteur, Windows 7?
J'ai 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:
- Débogage à l'aide de l'ide, IDE à l'Aide de Grunt Console (Le processus est terminé avec le code de sortie 6)
- Débogage avec Nodeeclipse (Ce genre d'œuvres d'accord mais ne frappe pas les points d'arrêt définis dans eclipse, pas très intuitif)
- Débogage à l'aide d'un noeud-inspecteur (Ce genre de travaux. Je peux étape à travers un peu de moyens à l'aide F10 F11 et en chrome. Mais finalement, il se bloque juste. À l'aide de la touche F8 pour passer à un point de rupture qui ne fonctionne jamais.)
MESSAGE D'ERREUR À L'AIDE D'UN NOEUD-INSPECTEUR
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.
-
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.... -
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
à#!/usr/bin/env node --debug-brk
-
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 -
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\Roaming\npm\node_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.
node-inspector
sans paramètres. Dans l'étape 4, au lieu de courir juste grunt
, essayez node --debug-brk C:\Users\khollenbeck\AppData\Roaming\npm\node_modules\grunt-cli\bin\grunt
. Si grunt démarré en mode de débogage, vous devriez voir debugger listening on port 5858
pour la sortie de cette commande.Bon, ça m'a beaucoup plus près... Un problème de plus. Alors maintenant, j'ai le débogueur ouvrir avec Gruntfile chargé. J'ai exécuter le grognement d'un troisième fenêtre de commande, il interrompt la ligne de commande, mais ne touche pas le point de rupture je l'ai mis dans chrome.
Vous ne devriez pas besoin de commencer à grogner à partir d'une troisième fenêtre, c'est déjà en cours d'exécution via le
node --debug-brk ...
de commande. Pas simplement par l'utilisation de Chrome, et si vous avez besoin de re-exécuter, exécuter la même node --debug-brk ...
commande de nouveau. J'ai mis à jour ma réponse ci-dessous à l'espérons, de mieux expliquer.Ah, je vois ce que j'ai fait de mal. Pour une raison que je ne
node --debug-brk
avec l'ajout du chemin C:\Users\khollenbeck\AppData\Roaming\npm\node_modules\grunt-cli\bin\grunt
. Son travail maintenant, merci beaucoup. Je m'excuse pour traîner ce depuis si longtemps. Mais j'espère que ce sera utile pour d'autres utilisateurs de windows dans le futur.Woohoo! Pas de problème, je suis tout simplement heureux nous a finalement obtenu ce travail 🙂
OriginalL'auteur Kris Hollenbeck | 2014-06-02
Vous devez vous connecter pour publier un commentaire.
Ceci peut être accompli par le démarrage de
node-inspector
et de départgrunt
en mode de débogage. Une fois cela fait, vous pouvez parcourir votreGruntfile.js
dans google Chrome comme vous le feriez normalement.nœud de départ-inspecteur
Si vous ne l'avez pas déjà
node-inspector
, l'installer à l'aidenpm install -g node-inspector
. Puis la lancer dans un terminal/invite de commande: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 legrunt
commande à partir de la ligne de commande. Si vous avez installé grognement à l'échelle mondiale (à l'aide denpm 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, legrunt.cmd
fichier de points à l'endroit où legrunt
script est situé. Le plus probable de lagrunt
script est situé dansC:\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
:Vous savez que vous avez du succès quand vous voyez
debugger listening on port 5858
que 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.debug avec Chrome
Maintenant mettre en place 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 votreGruntfile.js
, et pas à travers comme vous le feriez normalement.Je veux juste dire un fichier qui est appelé lors de l'exécution de
grunt
sur la ligne de commande. Pour moi, le nom de fichier estgrunt
, mais il pourrait êtregrunt.exe
sur Windows. Je suis en mesure de voir où le fichier est en cours d'exécution$ which grunt
Je viens de lancer la commande
grunt
dans le même répertoire que mon Gruntfile.js .. il n'y a pas de grunt.exe que je suis au courant. Alors serait-ce aller dans mon Gruntfile alors?Droit, mais je devine que vous avez installé le
grunt-cli
à somepoint, et c'est là que legrunt
fichier se trouve. Je pense que sur Windows, vous pouvez rechercher un fichier à l'aide de lawhere
commande? stackoverflow.com/questions/304319/...Désolé, il serait pas allez dans votre
Gruntfile.js
, cette édition a pour aller dans legrunt
exécutableOriginalL'auteur dylants
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 de
node-inspector
et un chemin d'accès, comme vous le feriez normalement de départ exécuter un script à l'aide de lanode
de 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
dans Mac, pas sûr au sujet 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
Les utilisateurs de Windows pourrait éventuellement être ennuyé par des node-inspector bug 918, pour lequel il existe une solution de contournement décrite dans le même thread.
OriginalL'auteur dtothefp
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):
Si vous installez l'extension Chrome Nœud Inspecteur Manager, les DevTools va s'ouvrir automatiquement.
Sinon, vous pouvez ouvrir
chrome://inspect
et se connecter à la session de débogage manuellement.OriginalL'auteur Dmytro Shevchenko