如何在node.js中有条件地管道输出?

时间:2014-11-04 20:45:03

标签: javascript node.js stream pipe gulp

我希望我的流只在我的第一个流满足某些条件时才能管道到另一个流。

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/**')

谢谢!

1 个答案:

答案 0 :(得分:0)

查看gulp-if,其后面使用gulp-match检查乙烯基文件是否符合条件。

从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);
    }));