How do I debug a gulp task defined in my gulpfile.js
with a debugger such as the Google Chrome debugger, stepping through the task\'s code line by line?
If you are using webstorm you can right click the task in the gulp panel and select debug.
For anyone using VS Code 1.10+
This is how your launch.json file should look.
{
// 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"
]
}
]
}
Thanks user2943490, on Windows I found this version worked for me:
node --inspect --debug-brk ./node_modules/gulp/bin/gulp.js --verbose
Version (node v8.11.3, npm 6.2.0, gulp 3.9.1)
Windows 10 & git bash
Install Node.js V8 --inspector Manager (NiM) & set to your preference
Try this:
node --inspect-brk ./node_modules/gulp/bin/gulp.js --verbose
With Node.js version 6.3+ you can use the --inspect flag when running your task.
To debug a gulp task named css
:
Find out where your gulp executable lives. If gulp is installed locally, this will be at node_modules/.bin/gulp
. If gulp is installed globally, run which gulp
(Linux/Mac) or where gulp
(Windows) in a terminal to find it.
Run one of these commands according to your version of Node.js. If required, replace ./node_modules/.bin/gulp
with the path to your gulp installation from step 1.
node --inspect --debug-brk ./node_modules/.bin/gulp css
node --inspect-brk ./node_modules/.bin/gulp css
Use Chrome to browse to chrome://inspect
.
The --debug-brk
(Node.js 6.3+) and --inspect-brk
(Node.js 7+) flags are used to pause code execution on the first line of code of your task. This gives you a chance to open up the Chrome debugger and set breakpoints before the task finishes.
If you don't want the debugger to pause on first line of code, just use the --inspect
flag.
You can also install the Node.js Inspector Manager (NIM) extension for Chrome to help with step 3. This will automatically open up a Chrome tab with the debugger ready to go, as an alternative to manually browsing to a URL.
I liked the answer of @Avi Y. but I suppose people would had appreciated a more complete script :
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');
});});