2014-11-04 23 views
1

只有當我的第一個流符合某些條件時,我纔想讓我的流傳輸到另一個流。如何在node.js中有條件地管輸出?

es = require('event-stream'); 

var checkBuffer = function() { 
    return es.map(function(file, cb) { 
     if (!file.isBuffer()) { 
      cb(); 
     } else { 
      cb(null, file); 
     } 
    }); 
}; 

module.exports = function() { checkBuffer.pipe(mysteryFoo()); return checkBuffer; }; 

我只想管mysteryFoo只有當所有的文件管道輸送到checkBuffer通過isBuffer,否則我不希望這條管道發生。

管道輸出到該模塊的功能是gulp.src('/some-dest/**')

謝謝!

回答

0

看看gulp-if,它在幕後使用gulp-match來檢查乙烯基文件是否符合條件。

var gulpmatch = require('gulp-match'); 
var map = require('map-stream'); 

var condition = true; // TODO: add business logic here 

vinylfs.src('path/to/file.js') 
    .pipe(map(function (file, cb) { 
     var match = gulpmatch(file, condition); 
     if (match) { 
      // it matched, do stuff 
     } 
     cb(null, file); 
    })); 

實施例的使用從大口匹配拉