Electron(19.x)+React(18)应用闲置隔夜触发ChunkLoadError问题排查
Electron+React 夜间运行后偶现ChunkLoadError的可能原因
问题场景
- 基于React 18构建的Electron 19.x应用,测试人员整夜运行后,次日偶尔出现空白Electron窗口
- 控制台报错信息:
ChunkLoadError: Loading chunk 3495 failed. react-dom.production.min.js:189
(timeout: file://C:/Users/)
- 错误栈追踪指向懒加载代码行:
const SystemOutagePage = lazy(() => import('src/pages/systemOutage'));
- 补充背景:后端服务断开(如夜间家用路由器重启)时弹出窗口是预期行为,但本地故障页面加载失败不符合预期;模块路径为本地文件路径,块文件路径有效,应用安装/更新时文件完整部署,故障页面测试正常,仅单个用户夜间运行后出现此问题
可能的原因
- asar包读取超时:Electron把应用打包进asar文件,整夜运行后系统可能因后台任务(系统更新、磁盘清理)或内存不足导致磁盘IO阻塞,读取asar内的chunk文件时触发超时。
- 渲染进程资源泄漏:应用长时间运行后,Electron渲染进程可能存在内存泄漏或资源未正确释放,导致发起懒加载请求时无法正常访问本地资源。
- 临时文件权限限制:Windows夜间可能有安全软件扫描、系统权限调整,导致asar内的chunk文件短时间内无法被读取,触发加载超时。
- 懒加载超时阈值过短:React懒加载的默认超时时间可能偏短,当系统资源紧张时,即使是本地文件读取也可能超过阈值抛出错误。
- Electron版本遗留bug:Electron 19.x属于旧版本,可能存在长时间运行后本地资源加载的特定bug,比如asar文件句柄泄漏导致无法正常读取。
内容的提问来源于stack exchange,提问作者Neobyte
相关产品推荐
相关产品推荐

