diff --git a/lib/pipeline/watch.js b/lib/pipeline/watch.js index 910bb382e..a2746716e 100644 --- a/lib/pipeline/watch.js +++ b/lib/pipeline/watch.js @@ -41,8 +41,9 @@ class Watch { stop() { this.fileWatchers.forEach(fileWatcher => { - fileWatcher.close(); - fileWatcher = null; + if (fileWatcher.shouldClose) return; + if (fileWatcher.isReady) fileWatcher.close(); + fileWatcher.shouldClose = true; }); this.fileWatchers = []; } @@ -125,7 +126,11 @@ class Watch { .on('add', path => changeCallback('add', path)) .on('change', path => changeCallback('change', path)) .on('unlink', path => changeCallback('remove', path)) - .on('ready', doneCallback); + .once('ready', () => { + configWatcher.isReady = true; + if (configWatcher.shouldClose) configWatcher.close(); + doneCallback(); + }); } }