Comment déboguer un Gruntfile avec des points d'arrêt l'aide d'un noeud-inspecteur, Windows 7?
-
20-12-2019 - |
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:
- 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
pour#!/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 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.
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.