「gulp-watch」を使用してフォルダーの下のファイルの変更を監視しimages/
、「gulp-imagemin」と「gulp-cache」を併用して、変更された画像ファイルを圧縮して上書きします。
新しい画像ファイルを追加すると、watch
タスクが正しく実行され、img-minify
タスクが無限ループに陥ります。
「gulp-cache」の使用を排除しようとしましたが、img-minify
タスクは依然として無限ループを引き起こしました。
ありがとう。
var gulp = require('gulp'),
watch = require('gulp-watch'),
imagemin = require('gulp-imagemin'),
pngquant = require('imagemin-pngquant'),
cache = require('gulp-cache');
gulp.task('clear', function() {
return cache.clearAll();
});
gulp.task('img-minify', function() {
var paths = {
src: 'images/**/*',
dest: 'images/'
};
return gulp.src(paths.src)
.pipe(cache(imagemin({
progressive: true,
use: [pngquant()]
})))
.pipe(gulp.dest(paths.dest));
});
var paths = { 'img': ['images/**/*.png', 'images/**/*.jpg'] };
gulp.task('watch', function() {
watch(paths.img, function() {
gulp.start('img-minify');
});
});
gulp.task('default', ['watch']);