我有一个功能,希望只用gulp 4.0 watcher应用于更改后的文件,例如当前的任务是:
gulp.watch([
paths.sourceFolder + "/**/*.js",
paths.sourceFolder + "/**/*.html",
paths.sourceFolder + "/**/*.less",
paths.lessFolder + "/**/*.less",
], {}
).on('change', gulp.series(lint));
这可以正常工作,并在失败时提供输出,例如棉绒错误,它将继续关注更多更改。但是,当我尝试重新格式化以仅在单个文件上运行时,无论执行什么操作,它都会因错误而失败,并且不会在控制台中提供任务详细信息输出,例如
gulp.watch([
paths.sourceFolder + "/**/*.js",
paths.sourceFolder + "/**/*.html",
paths.sourceFolder + "/**/*.less",
paths.lessFolder + "/**/*.less",
], {}).on('change', (path) => {
lint(someDoneFunction, path)
});
如何使此函数针对单个文件运行,并保留与使用gulp.series()相同的输出和错误处理?
答案 0 :(得分:0)
在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',...)
时一样,您将失去大部分任务系统集成。