@capacitor-community/electron打包后报Unhandled Promise Rejection错误如何解决
问题根源
@capacitor-community/electron模板默认集成了electron-updater自动更新模块,模块启动时会读取打包生成的app-update.yml配置文件。你当前使用的electron:pack命令添加了--dir参数,仅生成便携版运行目录,electron-builder在该模式下默认不会生成自动更新相关配置文件,因此触发文件不存在的报错。
解决方案
通用前置排查
先删除./electron/dist、./electron/build两个缓存目录,避免旧打包残留文件影响。
场景一:无需使用自动更新功能
直接移除自动更新相关代码即可:
- 打开
./electron/src/index.ts文件 - 删除所有
electron-updater相关的导入、autoUpdater初始化、更新事件监听逻辑 - 重新执行
npm run electron:pack即可正常打包运行
场景二:需要使用自动更新功能
按以下步骤调整配置:
- 完善
electron-builder.config.json中的publish配置,补充实际的仓库信息,示例:
"publish": { "provider": "github", "owner": "你的GitHub用户名", "repo": "你的项目仓库名", "private": false }
- 若测试阶段仍需使用
--dir模式运行,可在自动更新逻辑外层添加开发环境判断,避免开发/便携版环境下加载更新模块:
import isDev from 'electron-is-dev'; import { autoUpdater } from 'electron-updater'; if (!isDev) { // 原有自动更新初始化、事件监听代码放在该判断内 }
- 正式打包时使用
npm run electron:make命令,electron-builder会自动生成app-update.yml文件并打包到对应路径,不会再触发该报错。
内容的提问来源于stack exchange,提问作者Ch3shire
相关产品推荐
相关产品推荐

