mirror of
https://github.com/SrIzan10/nodemon.git
synced 2026-05-01 10:55:09 +00:00
add option --no-startup to not run command on startup
This commit is contained in:
@@ -10,6 +10,7 @@
|
||||
-q, --quiet .............. minimise nodemon messages to start/stop only.
|
||||
-V, --verbose ............ show detail on what is causing restarts.
|
||||
-I, --no-stdin ........... don't try to read from stdin.
|
||||
-S, --no-startup ......... disable running script on startup.
|
||||
-d, --delay n ............ debounce restart for "n" seconds.
|
||||
-L, --legacy-watch ....... Forces node to use the most compatible version
|
||||
for watching file changes.
|
||||
|
||||
@@ -191,6 +191,10 @@ function nodemonOption(options, arg, eatNext) {
|
||||
options.stdin = false;
|
||||
}
|
||||
|
||||
else if (arg === '--no-startup' || arg === '-S') {
|
||||
options.runOnStartup = false;
|
||||
}
|
||||
|
||||
else if (arg === '--ext' || arg === '-e') {
|
||||
options.ext = eatNext();
|
||||
}
|
||||
|
||||
@@ -11,10 +11,11 @@ module.exports = {
|
||||
ignore: ['.git', 'node_modules', 'bower_components', '.sass-cache'],
|
||||
watch: ['*.*'],
|
||||
stdin: true,
|
||||
runOnStartup: true,
|
||||
verbose: false,
|
||||
// 'stdout' refers to the default behaviour of a required nodemon's child,
|
||||
// but also includes stderr. If this is false, data is still dispatched via
|
||||
// nodemon.on('stdout/stderr')
|
||||
stdout: true
|
||||
|
||||
};
|
||||
};
|
||||
|
||||
@@ -24,7 +24,10 @@ exec('ps', function(error) {
|
||||
function run(options) {
|
||||
var cmd = config.command.raw;
|
||||
|
||||
utils.log.status('starting `' + config.command.string + '`');
|
||||
var runCmd = config.lastStarted !== 0 || options.runOnStartup;
|
||||
if (runCmd) {
|
||||
utils.log.status('starting `' + config.command.string + '`');
|
||||
}
|
||||
|
||||
/*jshint validthis:true*/
|
||||
restart = run.bind(this, options);
|
||||
@@ -54,8 +57,7 @@ function run(options) {
|
||||
executable = executable.replace(/\\((\w+\s+)+\w+)(?=([\\\.]))(?=([^"]*"[^"]*")*[^"]*$)/g, '\\"$1"');
|
||||
}
|
||||
|
||||
var args = utils.stringify(executable, cmd.args);
|
||||
|
||||
var args = runCmd ? utils.stringify(executable, cmd.args) : ':';
|
||||
var spawnArgs = [sh, [shFlag, args]];
|
||||
|
||||
if (utils.version.major === 0 && utils.version.minor < 8) {
|
||||
@@ -139,7 +141,7 @@ function run(options) {
|
||||
// restart
|
||||
restart();
|
||||
} else if (code === 0) { // clean exit - wait until file change to restart
|
||||
utils.log.status('clean exit - waiting for changes before restart');
|
||||
if (runCmd) utils.log.status('clean exit - waiting for changes before restart');
|
||||
child = null;
|
||||
}
|
||||
} else {
|
||||
|
||||
@@ -237,7 +237,7 @@ describe('nodemon argument parser', function () {
|
||||
});
|
||||
|
||||
it('should support short versions of flags', function () {
|
||||
var settings = cli.parse('node nodemon -v -x java -I -V -q -w fixtures -i fixtures -d 5 -L -e jade');
|
||||
var settings = cli.parse('node nodemon -v -x java -I -V -q -w fixtures -i fixtures -d 5 -L -S -e jade');
|
||||
assert(settings.version, 'version');
|
||||
assert(settings.verbose, 'verbose');
|
||||
assert(settings.exec === 'java', 'exec');
|
||||
@@ -247,12 +247,13 @@ describe('nodemon argument parser', function () {
|
||||
assert(settings.ignore[0] === 'fixtures', 'ignore');
|
||||
assert(settings.delay === 5000, 'delay 5 seconds');
|
||||
assert(settings.legacyWatch, 'legacy watch method');
|
||||
assert(settings.runOnStartup === false, 'run on startup');
|
||||
assert(settings.ext === 'jade', 'extension is jade');
|
||||
});
|
||||
|
||||
|
||||
it('should support long versions of flags', function () {
|
||||
var settings = cli.parse('node nodemon --version --exec java --verbose --quiet --watch fixtures --ignore fixtures --no-stdin --delay 5 --legacy-watch --exitcrash --ext jade');
|
||||
var settings = cli.parse('node nodemon --version --exec java --verbose --quiet --watch fixtures --ignore fixtures --no-stdin --delay 5 --legacy-watch --exitcrash --no-startup --ext jade');
|
||||
assert(settings.version, 'version');
|
||||
assert(settings.verbose, 'verbose');
|
||||
assert(settings.exec === 'java', 'exec');
|
||||
@@ -263,6 +264,7 @@ describe('nodemon argument parser', function () {
|
||||
assert(settings.ignore[0] === 'fixtures', 'ignore');
|
||||
assert(settings.delay === 5000, 'delay 5 seconds');
|
||||
assert(settings.legacyWatch, 'legacy watch method');
|
||||
assert(settings.runOnStartup === false, 'run on startup');
|
||||
assert(settings.ext === 'jade', 'extension is jade');
|
||||
});
|
||||
});
|
||||
@@ -335,4 +337,4 @@ describe('nodemon --delay argument', function () {
|
||||
var settings = cli.parse('node nodemon --delay 1200ms');
|
||||
assert(settings.delay === 1200, 'delay 1.2 seconds');
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
--reporter spec
|
||||
--ui bdd
|
||||
--ui bdd
|
||||
|
||||
@@ -106,6 +106,24 @@ describe('when nodemon runs (2)', function () {
|
||||
});
|
||||
});
|
||||
|
||||
it('should not run command if runOnStartup is false', function(done) {
|
||||
fs.writeFileSync(tmp, 'console.log("testing 1 2 3")');
|
||||
|
||||
nodemon({
|
||||
script: tmp,
|
||||
runOnStartup: false,
|
||||
stdout: false
|
||||
}).on('stdout', function() {
|
||||
assert(false, 'there should not be any stdout');
|
||||
}).on('stderr', function() {
|
||||
assert(false, 'there should not be any stderr');
|
||||
}).on('crash', function () {
|
||||
assert(false, 'detected crashed state');
|
||||
}).once('exit', function () {
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
||||
// it('should kill child on SIGINT', function (done) {
|
||||
// fs.writeFileSync(tmp, 'setTimeout(function () { var n = 10; }, 10000)');
|
||||
|
||||
|
||||
Reference in New Issue
Block a user