Node.js 生成子进程 stderr 不起作用

问题描述

我正在尝试编写一个简单的节点程序,该程序在单独的窗口(可以查看)中生成子进程,然后在程序完成时打印 stderr 消息。目前正在 Windows 上进行测试。

我创建了一个 parent.js 文件

661.035756,14

我同时使用了 'shell' 和 'detached' 参数,因为这是我能找到的打开和查看新终端窗口的唯一方法

然后,在 child.js 中:

const { spawnSync } = require('child_process')

const child = spawnSync('node child.js',[],{ shell: true,detached: true })
console.log(child)

这是一个非常简单的测试程序,在 4 秒后写入 stderr,然后以错误代码退出

然而,运行后,我收到了这个输出

let count = 0
setInterval(() => {
    console.log('test',count)
    count++
    if (count == 4) {
        process.stderr.write('an error occurred!')
        process.exit(1)
    }
},1000)

因此,虽然错误代码正确注册,但 stderr一个空缓冲区。我究竟做错了什么?我还能做些什么来实现我正在寻找的东西? (在单独的窗口中运行节点子进程并从父进程获取错误)。

非常感谢任何帮助。谢谢!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)