我正在使用' 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']);
答案 0 :(得分:1)
我猜您正在观看文件夹并触发将修改同一文件夹的任务。通过这样做,观察者将始终捕获文件更改并再次触发任务,并且一次又一次。
我猜你有两个选择。
0402
和source
保留不同的文件夹;观看distribution
并在source
上运行任务。