【问题标题】:node.js hangup on writing to console on winnode.js 在 win 上写入控制台时挂断
【发布时间】:2019-02-05 06:59:52
【问题描述】:

Node.js 在应用程序生命周期的某个阶段完全挂断写入控制台。它只发生在 Windows 上。在linux上一切正常。但是在任何控制台中获胜,例如cygwin, cmd, powershell 它只是挂断,在 console.logprocess.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


【解决方案1】:

看起来其他网站上的很多用户都在确认罪魁祸首是这样的:

我在转储中看到wslbscrwh64.dll,这并不常见。好像是这个东西:http://www.dieboldnixdorf.com.br/warsaw

哇,谢谢,真的是华沙!我从来没有要求它安装,我 总是看一个软件是否安装了别人来禁用它(安装 其他我不想要的),但必须安装一些软件 未经我同意的华沙(我不使用这台机器访问银行 帐户,所以我不知道华沙安装了什么)。

当我运行 node -v 时,它显示为 v8.9.4,然后挂起。当我运行 npm -v (或任何 npm 命令)它只是挂起(什么都不做)。有时使用 npm,如果我结束节点进程,它适用于 挂起进程(但在下次执行命令时挂起)。

当我再次安装 npm 和 node 时,问题解决了,然后在 第二天又回来了。

卸载华沙立即解决了它?

另一个用户:

我确认罪魁祸首是华沙。我刚刚卸载了它(而节点是 挂起),即使没有重启,节点也会停止挂起。

信用:https://github.com/nodejs/node/issues/18436

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多