React+Electron开发的应用自动更新后跳转electron-react-boilerplate首页如何解决
Electron自动升级后显示electron-react-boilerplate默认首页解决方案
该问题核心是升级包加载优先级、入口配置或打包缓存异常导致,按以下步骤排查修复即可:
- 核对
package.json构建配置
确认build字段下的files配置正确包含业务入口文件,同时排除electron-react-boilerplate的默认demo资源,避免默认首页被打进升级包。参考配置:
同时检查public静态资源目录,删除目录下默认的boilerplate首页文件,避免打包时覆盖React构建生成的业务入口html。"build": { "files": [ "dist/**/*", "src/main/**/*", "preload.js", "!**/electron-react-boilerplate/demo/**/*" ], "directories": { "output": "release" } } - 校验主进程窗口加载逻辑
打开主进程入口文件,确认生产环境下的加载路径指向你自己的业务入口,不要硬编码boilerplate默认地址。参考逻辑:const { app, BrowserWindow } = require('electron') const path = require('path') function createWindow () { const win = new BrowserWindow({ width: 800, height: 600, webPreferences: { preload: path.join(__dirname, 'preload.js') } }) if (process.env.NODE_ENV === 'production') { // 此处路径必须指向打包后生成的业务入口html,不要使用boilerplate默认路径 win.loadFile(path.join(__dirname, '../dist/render/index.html')) } else { win.loadURL('http://localhost:3000') } } - 清理缓存重新打升级包
打3.0.2版本升级包前,先手动删除dist、release文件夹,或者执行项目内置的清理命令npm run clean,再执行生产打包命令npm run package,避免旧的boilerplate缓存文件被打进新的升级包。 - 修复升级文件替换冲突
如果你的业务入口和boilerplate默认入口文件名相同(均为index.html),部分系统下electron-updater升级时会出现文件替换不彻底的问题,你可以将业务入口文件名修改为app.html,同步更新主进程的加载路径,彻底避免文件名冲突。
内容的提问来源于stack exchange,提问作者Tolga Günaydın
相关产品推荐
相关产品推荐

