【发布时间】:2019-02-05 06:59:52
【问题描述】:
Node.js 在应用程序生命周期的某个阶段完全挂断写入控制台。它只发生在 Windows 上。在linux上一切正常。但是在任何控制台中获胜,例如cygwin, cmd, powershell 它只是挂断,在 console.log 或 process.stdout.write 上什么也不做。
它发生在 create-nuxt-app in Github 安装后阶段钩子中:see more。
在此处放置的任何对标准输出的写入都会在此阶段在 Windows 上挂起应用程序。如果将 console.log 放在此 post hook 的顶部,它将挂在上面,因此 post hook 中的代码无关紧要。
它在一台 Windows PC 上不是孤立的行为,而是在大多数(或所有)窗口上发生不同用户的电脑。
此行为的原因可能是什么以及如何使其发挥作用?
【问题讨论】:
-
这是您遇到问题的实际代码吗?你能检查spawn in line 202 是否被执行?如果是这样,您可以将其注释掉或在条件中添加
false &&吗? -
@MichałKapracki 它的实际代码。它被执行了。那条线没有问题。一旦第一个 console.log 发生,它就会停止。如果我将 console.log 放在 post 函数的顶部,它将停在那里(在 spawn 或 git init 之前)
-
我明白了。我正在寻找可能导致这种情况的标准输出流的 hup 或关闭。我猜你在 git init 中使用相同的同步生成?如果你怀疑我是好奇:如果你删除两个产卵会发生什么?也许效果会在第一次从主进程写入标准输出之后发生?如果不继承 stdio 怎么办?
-
运行 fiddler 并查看它是否调用服务器以及是否上传或下载。
-
@DeerSpotter 如果挂断在 console.log 上,它会对服务器进行什么调用?
标签: javascript node.js windows