我正在使用 gulp 来压缩图像,但我只想压缩大小超过 200kb 的图像。是否可以在 JavaScript 中遍历文件夹并仅对超过 200kb 的文件运行缩小?我正在使用 lossy-imagemin 包。据我所知,它只适用于服务器端语言,但如果可能的话,我希望得到一个明确的答案。提前致谢。
最佳答案
是的,客户端是可能的。此示例使用 gulp-filter过滤掉不大于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.
关于javascript - 是否可以在 gulpfile 中添加 if 语句来根据文件大小运行任务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46668919/