【发布时间】:2016-01-06 02:09:02
【问题描述】:
我正在尝试编写一个小命令脚本来代理我项目中的其他脚本,并且我正在尝试使用节点将标准输出从生成的进程通过管道传输到当前进程的标准输出:
function runCommand(command, arguments) {
var commandProcess = childProcess.spawn(command, arguments);
commandProcess.stdout.pipe(process.stdout);
commandProcess.on("exit", process.exit);
}
这工作正常,直到我开始从我的子进程中获得大量输出(例如,其中一个是 maven 命令)。我看到的是它只打印出标准输出的前 8192 个字节,然后将其余字节存储到下一个“数据”事件。然后它会打印出下一个 8192 等。这意味着输出存在延迟,有时当我们运行服务器进程时,它有时会停止打印输出,直到您在服务器上触发触发另一个“数据”事件的某些东西。
有没有办法增加这个缓冲区的大小或避免这种行为?理想情况下,这个指挥官脚本只是代理我们的其他脚本,并且应该按原样打印出所有内容。
【问题讨论】:
标签: javascript node.js maven stream