我有以下简化的gulp任务:
gulp.src(...)
.pipe(stuff())
.pipe(moreStuff())
.pipe(imagemin())
.pipe(yetMoreStuff());
我只希望在文件路径包含" xyz"时调用imagemin
流,但我希望始终调用其他三个流。
在另一个地方叫gulp.src()
是不合适的 - 这个例子大大简化了,复制一切都会很乱。
到目前为止,我已经做到了这一点:
var through = require('through2');
gulp.src(...)
.pipe(stuff())
.pipe(moreStuff())
.pipe(through.obj(function (file, enc, cb) {
console.log(file.path.indexOf('hero') !== -1);
// file has a pipe method but what do I do?!
}))
.pipe(yetMoreStuff());
没有做任何事情。我不太了解乙烯基/溪流,能够自己做到这一点:(
我该怎么做?
答案 0 :(得分:2)
听起来gulp-filter可能就是你要找的东西。
var Filter = require('gulp-filter');
var filter = Filter(['**xyz**']);
gulp.src(...)
.pipe(stuff())
.pipe(moreStuff())
.pipe(filter)
.pipe(imagemin())
.pipe(filter.restore())
.pipe(yetMoreStuff());