我有一个使用 gulp-imagemin 压缩图像的 gulp 任务。当我向这个目录添加新文件时,我希望这个任务也能压缩它们。我读到gulp.watch 不会在新文件上触发,我应该尝试 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'));
});
但什么都没有改变。为什么不将文件添加到我的图像目录触发任务?