2016-09-15 62 views
0

在下面的gulpfile.js中,如果originals/logos/a.jpg已存在於dist/logos/a.jpg,我希望responsiveimageOptim.optimize函數不運行。如何告訴胖人跳過已處理的文件?

gulp.task('logos', function() { 
    return gulp.src('originals/logos/*.{png,jpg}') 
    .pipe(responsive({ 
     '*.*': sizes.map(function(size) { 
     return { 
      width: '' + (size * 100) + '%', 
      rename: { 
      suffix: size === 1 ? '' : ('@' + size + 'x') 
      } 
     } 
     }) 
    })) 
    .pipe(imageOptim.optimize()) 
    .pipe(gulp.dest('dist/logos')); 
}); 

回答

1

您可以使用gulp-changed這個。任何匹配的文件,該文件在'originals/logos/*.{png,jpg}'並已在'dist/logos'responsive步驟之前被過濾掉:

var changed = require('gulp-changed'); //   <---- add 

gulp.task('logos', function() { 
    return gulp.src('originals/logos/*.{png,jpg}') 
    .pipe(changed('dist/logos')) //    <---- add 
    .pipe(responsive({ 
     '*.*': sizes.map(function(size) { 
     return { 
      width: '' + (size * 100) + '%', 
      rename: { 
      suffix: size === 1 ? '' : ('@' + size + 'x') 
      } 
     } 
     }) 
    })) 
    .pipe(imageOptim.optimize()) 
    .pipe(gulp.dest('dist/logos')); 
}); 
+0

完美工作,謝謝! –

+1

不客氣,我很高興 – henry

相關問題