througt模块只接受8/16文件

时间:2017-06-30 16:27:51

标签: node.js gulp vinyl

我目前正在使用throught2模块编写gulp插件来替换缓冲区中的内容,下面是它的简化版本

function s = mat2str(mat, precision)
    s = sprintf('%.%df ', precision, round(mat, precision));
end


mat2str(similarity, 3)

ans =

    Empty string: 1-by-0

我发现它只会拾取8个文件而且会继续,忽略其他文件,我的输出就像:

module.exports = function(replaceData: DataChange | DataChange[]) {
  let count = 0;
  return through.obj(function (file: any, encoding: any, callback: any) {
    this.push(file);
    callback(null, file);
    console.log('@COUNT: ', ++count);
  });
};

如果我不回复任何内容

@COUNT: 1
@COUNT: 2
...
@COUNT: 8

它将处理16个文件。 如何增加文件数量将会提取?

1 个答案:

答案 0 :(得分:0)

我发现通过2期望的是从Readable& amp;可写的。

默认可读/可写hihghWaterMark为16K。如果没有消费者对于减轻压力的通过2转换流,它会在16个记录之后达到高水位和缓冲。如果在回调中返回文件(案例1),则输入8个文件,输出8个文件,这就是为什么它只选择8个。

解决方案是传递给2个选项,即

return through.obj({highWaterMark: 32}, function (file: any, encoding: any, callback: any) {

在我的情况下,它将获取32个文件。

支持的选项包括:

  • highWaterMark(默认为16)
  • defaultEncoding(默认为' utf8')
  • 编码 - ' utf8',' base64',' utf16le',' ucs2'如果指定,StringDecoder解码器将附加到流。
  • readable {boolean}
  • writable {boolean}
  • allowHalfOpen {boolean}如果设置为false,则当可写侧结束时,流将自动结束可读侧,反之亦然。

希望这会帮助您并节省您的时间