var gulp = require('gulp'),
imagemin = require('gulp-imagemin'),
pngquant = require('imagemin-pngquant'),
imageminJpegRecompress = require('imagemin-jpeg-recompress'),
notify = require('gulp-notify'),
fs=require("fs");
var imageMin=function(source,dist){
gulp.src(source)
.pipe(imagemin({
optimizationLevel: 7,
progressive: false,
use: [pngquant({quality: '65-80', speed: 4}),imageminJpegRecompress({loops: 3})]
}))
.pipe(gulp.dest(dist))
.pipe(notify({ message: 'Images task complete:'+source }));
};
//遍历所有文件
var scanFolder=function(path){
var walk = function(path){
files = fs.readdirSync(path);
files.forEach(function(item) {
var tmpPath = path + '/' + item,
stats = fs.statSync(tmpPath);
if (stats.isDirectory()) {
walk(tmpPath);
} else {
var imagetype=tmpPath.substr(tmpPath.length-3);
var last=tmpPath.lastIndexOf('/');
var imgfolder=tmpPath.substr(0,last);
if(imagetype=="png"||imagetype=="jpg"||imagetype=="gif"||imagetype=="ttf"){
console.log('正在扫描文件' + tmpPath+"父文件夹"+imgfolder);
imageMin(tmpPath,imgfolder);
}
}
});
};
walk(path);
console.log('扫描' + path +'成功');
}
function main(argv){
console.log("要压缩图片的文件夹:"+argv[0]);
scanFolder(argv[0]);
}
main(process.argv.slice(2));
使用:
要压缩的图片文件夹如“E:/imagemin/app”
运行命令node gulpfile E:/imagemin/app