Gulp watcher-单个文件的调用功能

时间:2018-10-22 16:35:43

标签: javascript node.js npm gulp gulp-4

我有一个功能,希望只用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()相同的输出和错误处理?

1 个答案:

答案 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',...)时一样,您将失去大部分任务系统集成。