2017-10-10 19 views
0

我使用gulp壓縮圖像,但我只想壓縮超過200kb大小的圖像。是否有可能在JavaScript中通過一個文件夾,並只對超過200kb的文件運行縮小?我正在使用lossy-imagemin軟件包。據我所知,它只能使用服務器端語言,但如果可能的話,我想要一個明確的答案。提前致謝。是否可以在基於文件大小運行任務的gulp文件中添加if語句?

+0

您使用的是什麼gulp庫? – Garfield

+0

我很新的吞嚥,所以我不知道什麼是圖書館?但是,如果這就是你的意思,我正在使用有損imagemin(https://www.npmjs.com/package/lossy-imagemin)的圖像? –

回答

1

是的,它可能是客戶端。此示例使用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. 
+0

謝謝。我會放棄這一點。 –

相關問題