Gulp imagemin - 只优化一张图片

Gulp imagemin - optimize only one image

此代码运行良好,它将优化文件夹中的所有图像,如果我需要使用 gulp images 手动调用任务,这没问题。 但通常我只是做 gulp watch 并且之前添加的所有图像都不需要重新优化。

那么,gulp 如何只优化刚刚添加到文件夹中的图像,而不是所有图像?

gulp.task('images', function() {
    gulp.src('images/src/*.{png,jpg,gif}')
    .pipe(plumber(plumberErrorHandler))
    .pipe(imagemin({
        optimizationLevel: 7,
        progressive: true
    }))
    .pipe(gulp.dest('images'))
    .pipe(notify("Images optimized."));
});

gulp.task('watch', function() {
    gulp.watch('images/src/*.{png,jpg,gif}', ['images']);
});

gulp-changed 应该可以达到这个目的。

基本上它比较文件的最后修改 属性 如果源比目标更新,他将它传递到流中,否则从中删除。