Comment déboguer une tâche Gulp?

Comment dois-je déboguer une tâche de gulpfile.js définie dans mon gulpfile.js avec un débogueur tel que le débogueur Google Chrome, en passant par le code de la tâche ligne par ligne?

Avec Node.js version 6.3+, le débogage a été rendu beaucoup plus simple avec l'utilisation du drapeau --inspect .

Pour déboguer une tâche de gulp nommée build :

  1. Découvrez où se trouve votre exécutable gulp. Si gulp est installé localement, ce sera sur node_modules/.bin/gulp . Sinon, dans un terminal, exécutez which gulp sur Linux / Mac ou where gulp sur Windows pour le trouver.

  2. Run node --inspect --debug-brk ./node_modules/.bin/gulp build . Si nécessaire, remplacez ./node_modules/.bin/gulp par le chemin d'accès à votre installation de gulp.

  3. Utilisez Chrome pour parcourir l'URL qui est imprimée sur la console. On dirait chrome-devtools://devtools/remote/serve_file/@xxxxxxxxx/inspector.html?experiments=true&v8only=true&ws=127.0.0.1:9229/xxx-xxx-xxx .

L' --debug-brk est utilisé pour interrompre l'exécution du code immédiatement. Cela vous donne la possibilité d'ouvrir le navigateur et de définir des points d'arrêt avant la fin de la tâche.

Vous pouvez également installer l'extension Node.js Inspector Manager (NIM) pour Chrome pour aider à l'étape 3. Cela ouvrira automatiquement un onglet Chrome avec le débogueur prêt à fonctionner, en alternative à la copie et au collage d'URL du terminal.

Si vous utilisez Webstorm, vous pouvez cliquer avec le bouton droit de la souris sur la tâche dans le panneau du gulp et sélectionner déboguer.

Entrez la description de l'image ici

Si vous utilisez gulp-nodemon, vous pouvez le faire dans votre fichier gulp. Passez simplement l'option execMap:

 gulp.task('default', function() { nodemon({ script: 'server.js', ext: 'js', execMap: { js: "node --inspect" } }) } 

J'espère que cela t'aides.