4

我正在构建的应用程序,当我编译它以使用电子构建器打包它时,不时地死掉,显示一个空白屏幕和一个断开连接的开发工具:

在此处输入图像描述

任何想法发生了什么或如何开始弄清楚这里发生了什么?

4

2 回答 2

1

侦听uncaughtException事件并记录您收到的任何错误。这将使您深入了解正在发生的事情。然后在必要时执行任何清理,并在需要时重新启动应用程序。如果它打算长时间运行,这允许您的应用程序从崩溃中“恢复”。

//handle crashes and kill events
process.on('uncaughtException', function(err) {
  //log the message and stack trace
  fs.writeFileSync('crash.log', err + "\n" + err.stack);

  //do any cleanup like shutting down servers, etc

  //relaunch the app (if you want)
  app.relaunch({args: []});
  app.exit(0);
});

您还可以监听SIGTERM事件以查看您的应用程序是否被终止,还可以正常关闭服务器、重新启动等。

process.on('SIGTERM', function() {
  fs.writeFileSync('shutdown.log', "Received SIGTERM signal");

  //do any cleanup like shutting down servers, etc

  //relaunch the app (if you want)
  app.relaunch({args: []});
  app.exit(0);
});
于 2017-07-17T23:22:01.727 回答
0

这可能是由渲染器进程中的几个不同的严重故障(例如内存不足)引起的。要修复它,您确实必须亲自处理错误。

有关更多详细信息,请参阅https://www.electronjs.org/docs/tutorial/application-debugging#v8-crashes。具体来说,我建议ELECTRON_ENABLE_LOGGING在启动电子进程之前将环境变量设置为 true,这应该会导致错误显示在您启动主进程的控制台中(而不是 chrome devtools 控制台)。

于 2021-01-18T17:57:50.027 回答