You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何记录Electron Windows应用的「主进程发生JavaScript错误」日志

解决Electron主进程JavaScript错误(定位未正确编译的原生库)

方法1:在主进程中手动捕获并输出错误详情

在主进程入口文件(如main.js)最顶部添加全局错误捕获代码,强制打印完整错误堆栈:

// 捕获未处理的Promise拒绝
process.on('unhandledRejection', (reason, promise) => {
  console.error('未处理Promise拒绝:', reason);
  console.error('关联Promise:', promise);
});

// 捕获未捕获的异常
process.on('uncaughtException', (error) => {
  console.error('未捕获异常:', error);
  console.error('异常堆栈:', error.stack);
});

// 监听Electron应用级错误
const { app } = require('electron');
app.on('error', (error) => {
  console.error('应用错误:', error);
});

重新打包或启动应用后,通过CMD运行时控制台会输出包含出错原生库的详细堆栈信息。

方法2:用Electron内置日志参数启动

在CMD中带--enable-logging参数启动应用,同时合并标准输出和错误输出到日志文件:

"C:/path/to/my/app.exe" --enable-logging > full_log.txt 2>&1

该参数会强制Electron输出所有内部调试日志,包括原生模块加载失败的具体信息。打开full_log.txt后,搜索Error、failed、module等关键词即可定位问题库。

方法3:强制重新编译原生模块

针对当前Electron环境重新编译所有原生依赖,确保产物匹配平台:

npm rebuild --target=<你的Electron版本> --arch=x64 --dist-url=https://electronjs.org/headers

替换<你的Electron版本>为实际版本号(如28.0.0),该命令会覆盖原有编译产物,生成适配当前平台的原生模块文件。

方法4:排查Electron Builder打包日志(若用Builder打包)

打包时添加--debug参数,输出完整编译过程日志:

electron-builder build --win --x64 --debug

打包日志会显示每个原生模块的编译状态,直接定位编译失败或平台不匹配的模块。


内容的提问来源于stack exchange,提问作者Sharcoux

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 12:35:17