2014-12-04 113 views
0

的内容传递到流我有以下简化一饮而尽任务:咕嘟咕嘟:通过取决于流

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

没有做任何事情。我不知道乙烯/流足够好,能够自己做这个:(

如何做到这一点?

回答

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()); 
+0

这正是我想要的!最后使用[gulp-if](https://github.com/robrich/gulp-if)来代替,因为我想要其他条件,但是我没有把它放在问题中:) – callumacrae 2014-12-04 18:30:43