【问题标题】:Why don't newly added files trigger my gulp-watch task?为什么新添加的文件不会触发我的 gulp-watch 任务?
【发布时间】:2014-08-09 09:58:07
【问题描述】:

我有一个 gulp 任务,它使用 gulp-imagemin 来压缩图像。当我向这个目录添加新文件时,我希望这个任务也能压缩它们。我读到了 gulp.watch doesn't trigger on new files 并且我应该尝试 gulp-watch 所以我就这样使用它;

gulp.task('images', function() {
  watch({glob: './source/images/*'}, function (files) {
    return files
      .pipe(plumber())
      .pipe(imagemin({
        progressive: true,
        interlaced: true
      }))
      .pipe(gulp.dest('./www'));
  });
});

这与第一次运行时的 gulp.watch 相同,但是当我将新图像添加到目录时没有任何反应。但是,如果我覆盖现有文件,它会再次运行该任务,因此它的行为会有所不同。

gulp-watch 上的文档称此为“批处理模式”,并说我也可以按文件运行任务,所以我也尝试过这种方式;

gulp.task('images', function() {
  gulp.src('./source/images/*')
    .pipe(watch())
    .pipe(plumber())
    .pipe(imagemin({
      progressive: true,
      interlaced: true
    }))
    .pipe(gulp.dest('./www'));
});

但没有任何改变。为什么向我的图像目录添加文件不会触发任务?

【问题讨论】:

标签: gulp gulp-imagemin imagemin gulp-watch


【解决方案1】:

gulp.watch 中添加一个额外的参数{cwd:'./'} 对我有用:

gulp.watch('src/js/**/*.js',{cwd:'./'},['scripts']);

2 件事让这个工作:

1在文件/文件夹模式中避免./

2确保./cwd 的值中

祝你好运。

参考:-https://stackoverflow.com/a/34346524/4742733

【讨论】:

    【解决方案2】:

    此类问题最有可能被重定向到gaze 包及其内部进程,这些进程在您的操作系统上运行复杂的监视程序。在这种情况下,您应该将 images/**/* 传递给 glob 选项,因此凝视将观察图像目录中的所有(包括新的)文件:

    var gulp = require('gulp');
    var watch = require('gulp-watch');
    var imagemin = require('gulp-imagemin');
    
    gulp.task('default', function() {
        watch({glob: 'images/**/*'}, function (files) {
          files.pipe(imagemin({
            progressive: true,
            interlaced: true
          }))
          .pipe(gulp.dest('./www'));
        });
    });
    

    但是当你有空的图像目录时,这个填充不能解决问题。如果您想观看它们,请将['images', 'images/**/*'] 传递给 glob,它会观看最初为空的目录。

    附:在这种情况下你也不需要gulp-plumber,因为watch会重新运行函数,每次都会使用imagemin,即使imagemin弹出错误。

    【讨论】:

    • 谢谢!我从 source/images/ 中删除了“./”,现在可以使用了!
    猜你喜欢
    • 2018-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-07
    • 1970-01-01
    • 2015-05-20
    相关资源
    最近更新 更多