Если у вас есть задача, которая запускается и заканчивается, которую нужно запускать каждый раз, когда файлы меняются, что хорошо документировано здесь https://gulpjs.com/docs/en/getting-started/watching-files
const { watch } = require('gulp');
exports.default = function() {
// The task will be executed upon startup
watch('src/*.js', { ignoreInitial: false }, function(cb) {
// body omitted
cb();
});
};
Но есть ли способ использовать gulp watch как nodemon? Где вы оставляете задачу запущенной, а затем останавливаетесь и запускаете ее всякий раз, когда изменяется файл в списке наблюдения?
--- больше ---
было задано несколько примеров, поэтому вот несколько примеров, которые не будут работать
проблема в том, что я не знаю, как настроить его так, чтобы он останавливал существующий сервер при каждом запуске часов.
---- пример # 1 - запустить сервер в процессе -----
exports.default = function() {
watch('src/*.js', { ignoreInitial: false }, function(cb) {
// this will call back but when the watch is triggered again
// it will try to start another instance
app.listen(3000, cb);
});
};
---- пример # 2 - запустить сервер в своем собственном процессе процесса -----
exports.default = function() {
watch('src/*.js', { ignoreInitial: false }, function(cb) {
const proc = spawn('node', ['server.js']);
proc.stdout.pipe(process.stdout);
proc.stderr.pipe(process.stderr);
// this will never call the call back
// so never complete
cb();
});
};