我们有一个包含约 12 个任务的 gulpfile,其中 4 个由gulp.watch
. 我想gulp-notify
在任务gulp.watch
完成时使用。gulp-notify
如果直接运行任务,我不想做任何事情。下面的示例代码:
const
debug = require("gulp-debug"),
gulp = require("gulp"),
notify = require("gulp-notify");
gulp.task("scripts:app", function () {
return gulp.src(...)
.pipe(debug({ title: "tsc" }))
.pipe(...); // <--- if i add notify here,
// I will always get a notification
});
gulp.task("watch", function () {
gulp.watch("ts/**/*.ts", ["scripts:app"]);
});
如果我通过管道连接到任务notify
内部'scripts:app'
,它会在每次任务运行时发出通知,无论该任务是如何启动的。同样,我想在监视任务完成时通知。
我考虑添加一个'scripts:app:notify'
依赖于的任务'scripts:app'
,但如果可能的话,我想避免创建“不必要的”任务。
我还尝试了以下方法:
gulp.watch("ts/**/*.ts", ["scripts:app"])
.on("change", function (x) { notify('changed!').write(''); });
但这会导致每个文件更改的通知。我想要任务完成时的通知。
换句话说,如果我运行gulp scripts:app
,我不应该收到通知。当我运行gulp watch
并更改监视文件时,我应该会收到通知。
我怎样才能做到这一点?