有没有简单的方法可以捕获child_process spawnSync或execSync的stdout/stderr?我看到其他帖子在几年前说那时不可能,因为它是同步的。
我有一个问题,我需要捕捉另一个线程的输出,以便解析发送到stdout的内容。问题在于,除了使用spawn并使用stdout.on事件外,我没有找到任何其他解决方案。
这会导致问题,因为我的程序不是异步的。
编辑:
我使用的工具称为eslint-watch。它添加了像文件监视和指定默认目录之类的eslint功能。问题在于,在这个https://github.com/eslint/eslint/issues/2831讨论中,我们得出结论,我需要将eslint作为二进制文件执行,并从中获取帮助选项。
在 eslint 返回其帮助选项后,我会解析它们并将它们传递给 opinionator。因此,我的包装器具有与 eslint 相同的帮助上下文菜单,但也包含我的命令。问题是获取帮助是我做的第一件事情之一,因此我可以从终端解析命令。
我有一个问题,我需要捕捉另一个线程的输出,以便解析发送到stdout的内容。问题在于,除了使用spawn并使用stdout.on事件外,我没有找到任何其他解决方案。
这会导致问题,因为我的程序不是异步的。
编辑:
我使用的工具称为eslint-watch。它添加了像文件监视和指定默认目录之类的eslint功能。问题在于,在这个https://github.com/eslint/eslint/issues/2831讨论中,我们得出结论,我需要将eslint作为二进制文件执行,并从中获取帮助选项。
在 eslint 返回其帮助选项后,我会解析它们并将它们传递给 opinionator。因此,我的包装器具有与 eslint 相同的帮助上下文菜单,但也包含我的命令。问题是获取帮助是我做的第一件事情之一,因此我可以从终端解析命令。
capturedOutput = child_process.execSync("your_subprocess")
。 更多细节请参阅当前Node版本的文档:https://nodejs.org/api/child_process.html#child_process_child_process_execsync_command_options - TanguyP