我只是想从节点运行git clone
并将输出流传输到stdout,就像从shell正常运行一样,但是使用child_process.spawn
之后,我无法将输出传递到标准输出。目前,我正在使用:
child = spawn('git', ['clone', url]);
child.stdout.pipe(process.stdout);
child.stderr.pipe(process.stderr);
但是我只看到“正在克隆到'目录'”消息,而没有看到远程消息和“正在接收对象...”。
我在做什么错了?
答案 0 :(得分:1)
默认情况下,git clone
仅在终端中运行时显示进度。当它不在终端中运行时,可以使用--progress
argument启用进度:
除非将状态附加到终端上,否则默认情况下在标准错误流上报告进度状态,除非指定了-q。即使标准错误流未定向到终端,该标志也会强制显示进度状态。
但是,我不确定这是否能达到您的期望。进度输出不是简单的输出。价值观改变了。我不确定child_process.spawn()
的效果如何。
还要注意,输出是到STDERR
,而不是STDOUT
。