在我的 gulpfile 中,我正在复制多个文件(各种格式),如果这些文件中的任何一个包含我想用gulp-imagemin
.
问题是gulp-imagemin
只需要图像,否则会在日志中抛出不受支持的图像,所以如果我要传入整个 glob,它会引发很多错误,我想避免这种情况。我试图gulp-if
过滤 glob,虽然它可以作为过滤器并防止这些错误,但即使没有图像存在,它似乎总是至少通过一次。例如,即使没有任何 png 文件,它仍然会调用 imagemin() 一次:
gulp.task('test:imagemin', function () {
return gulp.src('*.nothing')
.pipe(gulpif('*.png', imagemin({ verbose: true })));
});
这将记录“缩小 0 个图像”,因为在我的真实场景中,我传递了几十个没有图像的球体,所以我的日志被垃圾邮件淹没了。如果我将 gulpif 条件设置为静态假,它根本不会调用 imagemin,所以它一定是这个条件不应该是假的东西?
如果 glob 不包含某种类型的文件,我如何根本不调用 imagemin()?