2014-12-04 114 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