是否可以在 gulpfile 中添加一个 if 语句,该语句将根据文件大小运行任务



我正在使用gulp来压缩图像,但我只想压缩大小超过200kb的图像。是否可以在 JavaScript 中浏览文件夹并仅对超过 200kb 的文件运行缩小?我正在使用有损图像分钟包。据我所知,它仅适用于服务器端语言,但如果可能的话,我想要一个明确的答案。提前谢谢。

是的,可能是客户端。 此示例使用 gulp 筛选器筛选出不大于 200kb 的文件。

const gulp = require("gulp");
const filter = require('gulp-filter');
const fs = require('fs');
//  const path = require('path');  not needed for this example
const someImageMin = require('  your image min plugin   ' );

gulp.task('default', function () {
  // include only files > 200KB
  // retore option needed if you want to reinject the filtered-out files later
  const myFilter = filter(file => (fs.statSync(file.path).size > 200000), {restore: true});
  return gulp.src(['pics/*jpg' , 'pics/*png'])
    .pipe(myFilter)
    .pipe(someImageMin())
     // if you want to reinject the files excluded by the filter
    .pipe(myFilter.restore)
    .pipe(gulp.dest('new'));
});
[gulp-ignore][2] is another option.

最新更新