我有一个无操作转换流测试,它输出通过它的所有文件的列表。为什么下面的代码只输出一次文件列表?如何正确组合两个流?
var composed = test().pipe(test());
gulp.src('source/*').pipe(composed);
最佳答案
要组合流,您需要使用 pipe()
第一个流到第二个流,但您还必须修改 pipe()
和 unpipe()
> 所以它们适用于第二个流。这样,对组合流上的 pipe()
的其他调用将使用第二个流的输出而不是第一个流的输出。
function compose(s1, s2) {
s1.pipe(s2);
s1.pipe = function (dest) {
return s2.pipe(dest);
}
s1.unpipe = function (dest) {
return s2.unpipe(dest);
}
return s1;
}
var composed = compose(test(), test());
gulp.src('source/*')
.pipe( composed ) // src -> s1 -> s2
.pipe( ... ); // s2 -> ...
关于node.js - 在 Node.js 中组合两个 Transform 流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23520232/