2016-04-27 11 views
0

私はgulp-imageminを使って自分のプロジェクトで画像を最適化しようとしています。しかし、新しい画像が追加された場合、または現在の画像が変更された場合にのみ、イメージを実行したい。そして私はそれを新しい/変更されたイメージでのみ実行したいと思います。gulpタスクは、新しいファイルや変更されたファイルに対してのみ実行できますか?

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

しかし、「変更」イベントが呼び出されません。

誰かが変更を使用して、このようなイベントを追加することを提案しました。私も同じ結果を持つ "追加"イベントを試してみました。

ガルプについての私の知識はまだ限られており、私はこれを行う方法を理解できません。だから私はどのように新しい/変更された画像でのみimageminを実行することができますか?

答えて

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

これを行う最良の方法はありますか?知りません。私の質問は、コミュニティからの関心がゼロに近づいた。しかし、それは確かに私のために働く。私はこれが将来誰かを助けることを願っています。