【问题标题】:How can I run a gulp task only on new and changed files?如何仅在新文件和更改文件上运行 gulp 任务?
【发布时间】:2016-04-27 18:37:16
【问题描述】:

我正在尝试使用 gulp-imagemin 来优化我项目中的图像。但我只想在添加新图像或更改当前图像时运行 imagemin。而且我只想在新的/更改的图像上运行它。

有人建议使用更改并添加如下事件:

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

但是没有调用“change”事件。我还尝试了“添加”事件,结果相同。

我对 gulp 的了解仍然有限,我无法弄清楚如何做到这一点。那么如何仅在新/更改的图像上运行 imagemin?

【问题讨论】:

    标签: gulp gulp-imagemin gulp-watch


    【解决方案1】:

    我设法找到了一种让事情顺利进行的方法。

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

    这是最好的方法吗?我不知道。我的问题几乎得到了社区的零关注。但它确实对我有用。我希望这对将来的某人有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-31
      相关资源
      最近更新 更多