我有一个函数,我只想用gulp 4.0观察者应用于已更改的文件,例如目前的任务是:
gulp.watch([
paths.sourceFolder + "/**/*.js",
paths.sourceFolder + "/**/*.html",
paths.sourceFolder + "/**/*.less",
paths.lessFolder + "/**/*.less",
], {}
).on('change', gulp.series(lint));
这有效,给出输出,当它失败,例如lint错误它继续观察更多的变化。然而,当我尝试将其重新格式化为仅在单个文件上运行时,无论我做什么,它只是在错误上失败并且不在控制台中给出任务细节输出,例如
gulp.watch([
paths.sourceFolder + "/**/*.js",
paths.sourceFolder + "/**/*.html",
paths.sourceFolder + "/**/*.less",
paths.lessFolder + "/**/*.less",
], {}).on('change', (path) => {
lint(someDoneFunction, path)
});
如何为单个文件运行此函数并保留与使用gulp.series()相同的输出和错误处理?
在watch回调中使用您的函数,而不是将其附加到chokidar实例。
gulp.watch(
[
paths.sourceFolder + "/**/*.js",
paths.sourceFolder + "/**/*.html",
paths.sourceFolder + "/**/*.less",
paths.lessFolder + "/**/*.less",
],
gulp.series(lint, something, somethingElse)
);
根据latest watch documentation,当您直接访问chokidar实例时,就像使用on('change',...)
时一样,您将失去大部分任务系统集成。