我必须在UI上显示节点chid_process命令的进度。我无法使用诸如progress-bar之类的任何js库来跟踪命令的进度。 如何在UI上显示“ git clone”进度,以便用户知道进程状态?
答案 0 :(得分:3)
如果您不是为了一般目的而不是专门为此目的定义的功能,而是想作为子进程单独运行,那么您真的不能除非子进程本身通过以下方式提供此信息:标准输出。
如果是这样,您只能获取此原始输出,然后必须对其进行解析以找到可用于指示进度的内容。当然,这有其独特之处,因为通常会对输出进行缓冲,这需要您仔细考虑如何解析缓冲区。
最重要的是,您可能会遇到将来输出格式或顺序发生更改的情况,以致您的程序无法再找到所需的关键信息。
在git
的情况下,实际上并没有进步,只有阶段-很好,可以作为进步的一种形式(第1阶段,共4阶段,等等)。
要获取输出,请使用类似以下内容的
:const spawn = require("child_process").spawn;
const child = spawn("git" , ["clone", "https://some.rep"]);
child.stdout.on("data", data => {
// parse data here...
});
...
,与stderr
相同。有关更多详细信息,请参见Node documentation。
答案 1 :(得分:0)