如何告诉gulp跳过已经处理过的文件?

时间:2016-09-15 20:32:00

标签: gulp

在下面的gulpfile.js中,如果responsive已存在imageOptim.optimize,我希望originals/logos/a.jpgdist/logos/a.jpg函数无法运行。

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 个答案:

答案 0 :(得分: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'));
});