Electron Forge:GitHub发布器未创建任何Release问题排查
Electron Forge GitHub发布无报错但未创建Release的排查方案
我用yarn create electron-app my-app创建了Electron应用,托管在GitHub仓库,已经在package.json和forge.config.js中配置了GitHub发布器,但执行yarn run publish后日志显示成功,却没在GitHub生成Release,问题出在哪?
执行日志:
$ electron-forge publish ✔ Checking your system ✔ Loading configuration ✔ Resolving publish targets › Publishing to the following targets: github ✔ Running make command ✔ Loading configuration ✔ Resolving make targets › Making for the following targets: zip ✔ Running package command ✔ Preparing to package application ✔ Running packaging hooks ✔ Running generateAssets hook ✔ Running prePackage hook ✔ Packaging application ✔ Packaging for x64 on linux [1s] ✔ Running postPackage hook ✔ Running preMake hook ✔ Making distributables ✔ Making a zip distributable for linux/x64 [9s] ✔ Running postMake hook › Artifacts available at: ***/my-app/out/make ✔ Publishing distributables ✔ [publisher-github] Running the publish command › Uploading distributable (1/1 to v1.0.0)
可能的原因及解决方法
1. GitHub访问令牌权限不足
- 确保使用的GitHub Personal Access Token(PAT)拥有
repo完整权限,包含创建Release和上传资产的权限;若为组织仓库,需确认令牌有该组织仓库的访问权限。 - 检查环境变量
GITHUB_TOKEN是否正确设置,或forge.config.js的GitHub发布器配置中是否正确传入令牌。
2. 目标版本号已存在Release
日志显示要上传到v1.0.0,先去GitHub仓库的Releases页面确认是否已存在同版本的Release。Electron Forge默认不会覆盖已存在的Release,会直接跳过上传。
- 解决方案:修改
package.json中的version字段为新版本(如v1.0.1),重新执行发布命令。
3. GitHub发布器配置不完整
检查forge.config.js中的GitHub发布器配置是否包含必要字段:
module.exports = { // ...其他配置 publishers: [ { name: '@electron-forge/publisher-github', config: { repository: { owner: 'amblafont', // 你的GitHub用户名 name: 'essai-electron' // 对应仓库名 }, prerelease: false, // 根据需求设置是否为预发布版本 draft: false // 若设为true,Release会是草稿状态,不会在公开列表显示 } } ] };
- 重点确认
repository的owner和name与实际仓库一致,draft是否被误设为true。
4. 本地Git标签未同步到远程
Electron Forge默认会根据package.json的版本号创建Git标签并推送到远程,若本地标签未同步,可能导致发布流程异常:
- 执行
git tag查看本地是否有v1.0.0标签,无则执行git tag v1.0.0创建; - 执行
git push origin v1.0.0将标签推送到远程仓库,再重新执行发布命令。
5. 网络或代理问题
虽日志显示上传成功,但网络波动可能导致上传中断却未触发报错:
- 切换到稳定网络环境,关闭代理后重新发布;
- 添加
--verbose参数执行发布命令(yarn run publish --verbose),查看更详细的上传日志,定位问题。
内容的提问来源于stack exchange,提问作者amblaf
相关产品推荐
相关产品推荐

