如何通过Electron Forge生成latest.yml支持electron-updater更新
解决Electron Forge生成latest.yml文件的问题
问题描述
我已通过Webpack将ReactJS应用迁移至Electron Forge,成功生成.exe文件,但因缺少latest.yml文件,无法正常使用electron-updater进行应用更新。请问如何通过electron-forge make命令生成该文件?
用户提供的package.json配置:
{ "name": "app-electron", "version": "1.5.3", "description": "My app description", "config": { "forge": { "plugins": [ { "name": "@electron-forge/plugin-webpack", "config": { "devContentSecurityPolicy": "default-src * self blob: data: gap:; style-src * self 'unsafe-inline' blob: data: gap:; script-src * 'self' 'unsafe-eval' 'unsafe-inline' blob: data: gap:; object-src * 'self' blob: data: gap:; img-src * self 'unsafe-inline' blob: data: gap:; connect-src self * 'unsafe-inline' blob: data: gap:; frame-src * self blob: data: gap:;", "mainConfig": "./webpack.main.config.js", "renderer": { "config": "./webpack.renderer.config.js", "entryPoints": [ { "name": "main_window", "html": "./src/index.html", "js": "./src/index.js", "preload": { "js": "./src/preload.js" } } ] } } } ], "makers": [ { "name": "@electron-forge/maker-squirrel", "config": { "name": "app-electron", "loadingGif": "loading.gif", "icon": "icon.ico" } } ] } }, ... }
解决方案
要通过electron-forge make生成latest.yml,需要在Electron Forge配置中添加发布器(publisher),并调整Squirrel Maker的配置:
1. 安装对应发布器插件
根据发布需求选择插件:
# 若需发布到GitHub,安装此插件 npm install --save-dev @electron-forge/publisher-github # 若仅需本地生成latest.yml,安装通用发布器 npm install --save-dev @electron-forge/publisher-generic
2. 修改package.json的Forge配置
在config.forge下添加publishers字段,并给Squirrel Maker添加publish选项:
示例1:发布到GitHub的配置
"config": { "forge": { "plugins": [/* 保留原有插件配置 */], "makers": [ { "name": "@electron-forge/maker-squirrel", "config": { "name": "app-electron", "loadingGif": "loading.gif", "icon": "icon.ico", "publish": "always" // 新增:指定每次make时生成发布文件 } } ], "publishers": [ // 新增GitHub发布器配置 { "name": "@electron-forge/publisher-github", "config": { "repository": { "owner": "你的GitHub用户名", "name": "你的仓库名称" }, "prerelease": false } } ] } }
示例2:仅本地生成latest.yml的配置
"config": { "forge": { "plugins": [/* 保留原有插件配置 */], "makers": [ { "name": "@electron-forge/maker-squirrel", "config": { "name": "app-electron", "loadingGif": "loading.gif", "icon": "icon.ico", "publish": "always" // 新增:指定每次make时生成发布文件 } } ], "publishers": [ // 新增本地发布器配置 { "name": "@electron-forge/publisher-generic", "config": { "url": "file:///D:/your-local-release-folder", // 替换为你的本地目录路径 "platforms": ["win32"], "arch": ["x64"] } } ] } }
3. 运行make命令生成文件
执行以下命令:
electron-forge make
生成的latest.yml文件会出现在默认输出目录out/make/squirrel.win32/x64/中,同时包含对应的.exe安装包和.nupkg文件。
注意事项
- 确保
package.json中的version字段为有效版本号(如1.5.3),latest.yml会基于该版本生成更新信息。 - 使用GitHub发布器时,需确保本地已配置GitHub权限(如SSH密钥或个人访问令牌)。
内容的提问来源于stack exchange,提问作者user2014521
相关产品推荐
相关产品推荐

