【问题标题】:Gulp watch: Conditionally run tasks dependent on event.typeGulp watch:有条件地运行依赖于 event.type 的任务
【发布时间】:2015-10-09 10:19:21
【问题描述】:

我有以下内容:

gulp.watch('src/**/*', ['compile']);
gulp.watch('src/**/*', (event) => {
  if (event.type === 'deleted' {
    gulp.src(event.path.replace('src/', 'compiled/')).pipe(clean());
  } else {
    // TODO: Only run 'compile' when file is not deleted.
  }
});

每当添加或修改文件时,我都想运行compile 任务,它将获取新文件并将其移动到编译目录中。

每当删除文件时,我都不想运行compile 任务,因为它什么也不做。相反,我需要从编译目录中删除该文件。

上述代码有效,但在删除文件时继续运行编译任务(导致无操作)。

如何有条件地运行另一个任务?看起来 runstart Gulp 方法都已被删除和/或弃用。

【问题讨论】:

    标签: javascript gulp watch


    【解决方案1】:

    你可以在你的任务中包含 {read: false} 应该可以工作

    gulp.task('default', function () {
        return gulp.src('app/tmp', {read: false})
            .pipe(clean());
    

    【讨论】:

    • ??我不明白为什么这是相关的?
    • 通过设置 read: false 您基本上是在告诉 gulp 忽略已删除的文件 if (event.type === 'deleted' { gulp.src(event.path.replace('src /', '已编译/', {read: false})).pipe(clean()); }
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-11-11
    • 1970-01-01
    • 1970-01-01
    • 2021-12-05
    • 2021-08-19
    • 2016-11-29
    • 1970-01-01
    相关资源
    最近更新 更多