Running Nodemon and Node Inspector with Gulp

Written by David O'Dey on Jun 18, 2016

Nodemon and node-inspector are two must-have tools if you’re using node.js. You can manually start nodemon or node-inspector using two separate console windows, or you can do it a more efficiently using gulp.js. It took me some time to get everything setup the way I wanted it so I’m hoping this post will save you some effort.

Assuming your using gulp.js as your build system, lets install both gulp-nodemon and gulp-node-inspector using npm. I prefer to install the files locally to the project, but if you like you can install them globally using the -g flag. Use your console to navigate to your project folder, and run the following commands:

$ npm install gulp-nodemon --save-dev
$ npm install gulp-node-inspector --save-dev

After your plugins are installed we need to setup your gulpfile.js.

// require plugins
var gulp = require('gulp'),
    nodeInspector = require('gulp-node-inspector'),
    nodemon = require('gulp-nodemon');

gulp.task('nodemon', function () {
  nodemon({
      
    // location of webserver module
    script: './src/app',  
    ext: 'js',
    
    // enter any tasks you want to run before refreshing the server
    tasks: ['jshint'],  
    
    //important must pass the debug flag to work
    nodeArgs: ['--debug']  
  });
});

gulp.task('node-inspector', ['nodemon'], function() {
  gulp.src([])
    .pipe(nodeInspector({
      debugPort: 5858,
      webHost: '0.0.0.0',
      webPort: 8080,
      saveLiveEdit: false,
      preload: true,
      inject: true,
      hidden: [],
      stackTraceLimit: 50,
      sslKey: '',
      sslCert: ''
    }));
});

gulp.task('default', function() {
     gulp.start('node-inspector');
});

You’re all set, just type $ gulp in your console. If you use the same settings in this gulpfile.js, and your app is running on port 3000 you can open http://127.0.0.1:3000/ to access your webserver and http://127.0.0.1:8080/?port=5858 to access your node debugger.

To download the example used in this project you can checkout the files on Github.

For more information:

Nodemon
Node-inspector
Node.js