grunt-node-inspector
Version:
Run node-inspector with the rest of your workflow to debug node.js
59 lines (55 loc) • 1.3 kB
JavaScript
/*
* grunt-inspector
* https://github.com/ChrisWren/grunt-inspector
*
* Copyright (c) 2013 Chris Wren
* Licensed under the MIT license.
*/
/*jshint node: true*/
module.exports = function (grunt) {
'use strict';
var util = require('util');
grunt.registerMultiTask('node-inspector', 'Runs node-inspector to debug your node.js JavaScripts', function () {
var options = this.options();
var done = this.async();
var args = [require.resolve('node-inspector/bin/inspector')];
var pushArg = function(option, val) {
args.push('--' + option);
args.push(val);
};
[
'debug-port',
'web-host',
'web-port',
'save-live-edit',
'preload',
'hidden',
'stack-trace-limit',
'ssl-key',
'ssl-cert'
].forEach(function (option) {
if(option in options) {
if(util.isArray(options[option])) {
options[option].forEach(function(val) {
pushArg(option, val);
});
} else {
pushArg(option, options[option]);
}
}
});
grunt.util.spawn({
cmd: 'node',
args: args,
opts: {
stdio: 'inherit'
}
},
function (error) {
if (error) {
grunt.fail.fatal(error);
}
done();
});
});
};