0

「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']);
4

1 に答える 1