我正在尝试使用gulp-imagemin优化项目中的图像。但我想只在添加新图像或更改当前图像时才运行imagemin。我想只在新的/更改的图像上运行它。
有人建议使用此更改并添加如下事件:
gulp.watch( [ 'myfolder/**/*.png', 'myfolder/**/*.svg' ] )
.on( "change", function(file){
console.log("change");
// do imagemin stuff here
} );
但是没有调用“更改”事件。我也尝试了“添加”事件,结果相同。
我对gulp的了解仍然有限,我无法弄清楚如何做到这一点。那么如何才能在新/更改的图像上运行imagemin?
答案 0 :(得分:0)
我设法找到一种让事情有效的方法。
gulp.watch( [ 'myfolder/**/*.png', 'myfolder/**/*.svg' ], function (event) {
switch (event.type)
{
case 'added':
case 'changed':
gulp.src( event.path )
.pipe( imagemin({
optimizationLevel: 5,
progressive: true,
svgoPlugins: [{removeViewBox: false}],
use: [pngquant()]
}) )
.pipe( gulp.dest( strImgDest ) );
break;
}
} );
这是最好的方法吗?我不知道。我的问题几乎没有得到社区的关注。但它确实适合我。我希望这将有助于将来的人。