执行:显示标准输出“实时”

我有这个简单的脚本:

var exec = require('child_process').exec;

exec('coffee -cw my_file.coffee', function(error, stdout, stderr) {
    console.log(stdout);
});

在这里,我只需执行一个命令即可编译咖啡脚本文件。但是stdout永远不会在控制台中显示,因为命令永远不会结束(因为coffee的-w选项)。如果我直接从控制台执行命令,则会收到如下消息:

18:05:59 - compiled my_file.coffee

我的问题是:是否可以使用node.js exec显示这些消息?如果是,怎么办?

谢谢

泡芙小卤蛋Tom2020/03/24 11:55:40

我只想添加一个小问题,即从生成的进程中输出缓冲字符串console.log(),它会添加换行符,从而可以将生成的进程输出扩展到其他行中。如果输出stdoutstderr使用process.stdout.write()而不是console.log(),那么您将按“原样”从生成的进程中获取控制台输出。

我在这里看到了该解决方案: Node.js:无需尾随换行符即可打印到控制台吗?

希望能对使用上述解决方案的人有所帮助(即使来自文档,这也是实时输出的绝佳解决方案)。