【问题标题】:What could cause Electron to not show any errors?什么可能导致 Electron 不显示任何错误?
【发布时间】:2020-06-24 04:40:59
【问题描述】:

我从另一个开发者那里接手了一个 Electron 项目。

我面临的问题是该项目没有显示任何错误。即使包含throw "this is an error" 之类的内容也不会在主进程或渲染进程控制台或任何类型的标准错误弹出窗口上产生任何输出。

我已检查确认 electron-unhandled 未在使用中,并且没有任何注册 'uncaughtException'

我遗漏了什么会导致这种行为?

【问题讨论】:

  • 它不会产生任何输出吗?检查您的前任是否可能禁用控制台日志记录,可能像这样:console.log = () => {}(或放置一个开关以启用/禁用控制台日志记录)
  • 谢谢!这些正是我试图找到的禁用日志记录的技巧。是的,根本没有输出。不幸的是,事实并非如此。 console.log 没有在任何地方重新定义。 console.error 也不是。有没有类似的常用技巧用于抑制 Electron 中的输出?
  • 如果您自己在代码中放入控制台日志,能否得到控制台日志?
  • 您可以尝试在项目中搜索“ELECTRON_RUN_AS_NODE”和“ELECTRON_NO_ATTACH_CONSOLE”吗?他们可以阻止输出到控制台:electronjs.org/docs/api/…
  • @seesharper 是的。在这种情况下,它显示得很好。

标签: javascript electron


【解决方案1】:

搜索:unhandledRejection

  • unhandledRejection :这将捕获任何抛出的错误,或您已通过 throw 成功处理的非致命错误。
  • uncaughtException :这只捕获致命错误或会导致节点实例崩溃的错误
  • WebWorkers:如果您使用这些,将会有另一个 WebWorkers 控制台。
  • package.json :在此处查看执行的脚本以启动电子或启动它...确保控制台没有被发送到远程控制台。此功能将允许通过 Chrome/Firefox 与标准控制台调试应用程序。对于电子应用程序来说很常见。如果是通过启动命令完成的。

可能看起来像这样:

process.on('unhandledRejection', function (err) {
   
});

此外,请确保在搜索抑制器时包含任何模块,因为问题可能存在于 node_modules 目录中的某处,并且许多 IDE(我的默认情况下)在索引/搜索中排除了该目录。

【讨论】:

  • 尤里卡!您关于确保包含模块的最后评论是问题的症结所在。旧开发人员导入的模块正在重新定义 unhandledRejection 但正如您所说,IDE 没有在其中搜索。谢谢!
【解决方案2】:

另一个可能的原因可能是stdout 和/或stderr 重定向,问题是这可以通过多种方式实现,因此很难建议您检查什么... p>

如果有一些 child_process 调用来启动子进程,您可以检查使用的 stdio 数组,或者您可以检查是否对文件描述符 1 和 2 执行了一些低级操作...

希望这会有所帮助。

【讨论】:

  • 非常感谢您的评论。不幸的是,代码库中的任何地方似乎都没有对 stdout、stderr 或 stdio 的引用,而且似乎没有任何东西调用 child_process。
【解决方案3】:

您是否面临this official thread 中提到的问题。您可以禁用原始事件侦听器并由我的事件侦听器管理 ELECTRON_BROWSER_WINDOW_ALERT 事件。

解决办法

ipcMain.removeAllListeners("ELECTRON_BROWSER_WINDOW_ALERT")
ipcMain.on("ELECTRON_BROWSER_WINDOW_ALERT", (event, message, title)=>{
  console.warn(`[Alert] ** ${title} ** ${message}`)
  event.returnValue = 0 // **IMPORTANT!**
})

【讨论】:

  • 非常感谢您的评论、想法和示例代码。不幸的是,什么都没有改变。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-15
  • 2011-01-07
  • 2011-07-08
  • 1970-01-01
  • 2011-01-03
  • 1970-01-01
相关资源
最近更新 更多