2016-04-27 15 views
0

Ich versuche gulp-imagemin zu verwenden, um Bilder auf meinem Projekt zu optimieren. Aber ich möchte imagemin nur ausführen, wenn ein neues Bild hinzugefügt oder ein aktuelles Bild geändert wird. Und ich möchte es nur auf dem neuen/geänderten Image ausführen.Wie kann ich eine Schluckaufgabe nur für neue und geänderte Dateien ausführen?

Jemand schlug vor, um die Änderung zu verwenden, und fügen Sie Ereignisse wie folgt aus:

gulp.watch([ 'myfolder/**/*.png', 'myfolder/**/*.svg' ]) 
    .on("change", function(file){ 
     console.log("change"); 
     // do imagemin stuff here 
    }); 

Aber die „Änderung“ Ereignis wird nicht aufgerufen. Ich habe auch mit dem "add" -Ereignis mit den gleichen Ergebnissen versucht.

Mein Wissen über Schluck ist immer noch begrenzt und ich kann nicht herausfinden, wie man das macht. Wie kann ich imagemin nur auf neue/geänderte Bilder anwenden?

Antwort

0

Ich habe es geschafft, einen Weg zu finden, Dinge zum Laufen zu bringen.

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; 
    } 
}); 

Ist es der beste Weg, es zu tun? Ich weiß es nicht. Meine Frage wurde von der Community kaum beachtet. Aber es funktioniert sicher für mich. Ich hoffe, das wird jemandem in der Zukunft helfen.