产生`git clone`后流输出到stdout

时间:2018-08-21 20:31:17

标签: javascript node.js git

我只是想从节点运行git clone并将输出流传输到stdout,就像从shell正常运行一样,但是使用child_process.spawn之后,我无法将输出传递到标准输出。目前,我正在使用:

child = spawn('git', ['clone', url]);
child.stdout.pipe(process.stdout);
child.stderr.pipe(process.stderr);

但是我只看到“正在克隆到'目录'”消息,而没有看到远程消息和“正在接​​收对象...”。

我在做什么错了?

1 个答案:

答案 0 :(得分:1)

默认情况下,git clone仅在终端中运行时显示进度。当它不在终端中运行时,可以使用--progress argument启用进度:

  

除非将状态附加到终端上,否则默认情况下在标准错误流上报告进度状态,除非指定了-q。即使标准错误流未定向到终端,该标志也会强制显示进度状态。

但是,我不确定这是否能达到您的期望。进度输出不是简单的输出。价值观改变了。我不确定child_process.spawn()的效果如何。

还要注意,输出是到STDERR,而不是STDOUT