如果您有一项开始和完成的任务,则每次文件更改时都需要运行该任务,此处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();
});
};
但是有没有办法像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();
});
};
答案 0 :(得分:0)
好吧,至少您可以那样做:
% gulp someTask >/dev/null 2>&1 &
[1] _pid_
如果您的gulp任务像watch
这样的任务将无限期运行。
但是这种方法很脏。您应该使用类似nodemon
之类的方法。