Comment déboguer une tâche de groupe définie dans mon gulpfile.js
avec un débogueur tel que le débogueur Google Chrome, en parcourant le code de la tâche ligne par ligne?
Avec Node.js version 6.3+, vous pouvez utiliser l'indicateur --inspect
lorsque vous exécutez votre tâche.
Pour déboguer une tâche graphique nommée css
:
Découvrez où vit votre gosse exécutable. Si gulp est installé localement, il sera à node_modules/.bin/gulp
. Si gulp est installé globalement, exécutez which gulp
(Linux/Mac) ou where gulp
(Windows) dans un terminal pour le trouver.
Exécutez l'une de ces commandes en fonction de votre version de Node.js. Si nécessaire, remplacez ./node_modules/.bin/gulp
par le chemin d'accès à votre installation gulp à l'étape 1.
node --inspect --debug-brk ./node_modules/.bin/gulp css
node --inspect-brk ./node_modules/.bin/gulp css
Utilisez Chrome pour accéder à chrome://inspect
.
Les indicateurs --debug-brk
(Node.js 6.3+) et --inspect-brk
(Node.js 7+) permettent de suspendre l'exécution du code sur la première ligne de code de votre tâche. Cela vous donne une chance d'ouvrir le débogueur de Chrome et de définir des points d'arrêt avant la fin de la tâche.
Si vous ne souhaitez pas que le débogueur suspende la première ligne de code, utilisez simplement l'indicateur --inspect
.
Vous pouvez également installer l'extension Node.js Inspector Manager (NIM) pour Chrome pour vous aider à l'étape 3. Cela ouvrira automatiquement un onglet Chrome avec le débogueur prêt à être utilisé, au lieu de rechercher manuellement une URL. .
Pour toute personne utilisant VS Code 1.10+
Voici à quoi devrait ressembler votre fichier launch.json.
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.Microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "launch",
"name": "Gulp task",
"program": "${workspaceFolder}/node_modules/gulp/bin/gulp.js",
"args": [
"yourGulpTaskName"
]
}
]
}
Si vous utilisez gulp-nodemon, vous pouvez le faire dans votre fichier gulp ..__, il suffit de lui passer l'option execMap
gulp.task('default', function() {
nodemon({
script: 'server.js',
ext: 'js',
execMap: {
js: "node --inspect"
}
})
}
J'espère que cela t'aides.
Merci utilisateur2943490, j'ai trouvé cette version sous Windows
node --inspect --debug-brk ./node_modules/gulp/bin/gulp.js --verbose
J'ai aimé la réponse de @Avi Y. mais je suppose que les gens auraient apprécié un script plus complet:
gulp.task('nodemon', ['sass'], function(cb) {
var started = false;
consoleLog('nodemon started');
return nodemon({
//HERE REMOVE THE COMMENT AT THE BEGINING OF THE LINE YOU NEED
//exec: 'node --inspect --debug-brk node_modules/gulp/bin/gulp.js',
exec: 'node --inspect --debug-brk',
//exec: 'node --inspect',
script: path.server,
ignore: ['*/gulpfile.js', 'node_modules/*'],
verbose: true
}).on('start', function() {
if (!started) {
cb();
started = true;
}
}).on('restart', function() {
consoleLog('nodemon restarted the server');
});});