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

如何通过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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 17:09:58