Javascript 我可以在监视的任务完成时发出吞咽通知吗?
我们有一个包含12项任务的gulpfile,其中4项由Javascript 我可以在监视的任务完成时发出吞咽通知吗?,javascript,gulp,gulp-notify,Javascript,Gulp,Gulp Notify,我们有一个包含12项任务的gulpfile,其中4项由gulp.watch激活。当由gulp.watch启动的任务完成时,我想使用gulp notify。如果直接运行任务,我不希望吞下notify。示例代码如下: const debug = require("gulp-debug"), gulp = require("gulp"), notify = require("gulp-notify"); gulp.task("scripts:app", function ()
gulp.watch激活。当由gulp.watch启动的任务完成时,我想使用gulp notify
。如果直接运行任务,我不希望吞下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"]);
});
但这会导致对每个更改的文件发出通知。我希望任务完成时收到通知
换句话说,如果我运行gulpscripts:app
,我将不会收到通知。当我运行gulpwatch
并更改监视的文件时,应该会收到通知
如何执行此操作?尝试将参数添加到生成脚本:
function buildApp(notify){
return gulp.src(...)
.pipe(...)
.pipe(function(){
if (notify) {
//drop notification
}
});
});
}
//Register watcher
gulp.watch("ts/**/*.ts", function(){
var notify = true;
buildApp(notify);
});
//Register task so we can still call it manually
gulp.task("scripts:app", buildApp.bind(null, false));
如您所见,buildApp
是一个简单的函数。它可以通过监视程序或“正常”任务注册进行调用。尝试将参数添加到构建脚本中:
function buildApp(notify){
return gulp.src(...)
.pipe(...)
.pipe(function(){
if (notify) {
//drop notification
}
});
});
}
//Register watcher
gulp.watch("ts/**/*.ts", function(){
var notify = true;
buildApp(notify);
});
//Register task so we can still call it manually
gulp.task("scripts:app", buildApp.bind(null, false));
如您所见,buildApp
是一个简单的函数。它可以通过观察者或“正常”任务注册进行调用。您可以为脚本:app
任务提供一个参数,并检查if
/else
是否应该删除通知。@Sandrooco如何从观察中传入该参数?任务由名称标识。您可以为脚本:app
任务提供一个参数,并使用if
/else
检查通知是否应删除。@Sandrooco我如何从手表中传入该参数?任务由名称标识。