Electron无框架模板打包win32平台出现退出码1错误求助
Electron打包退出码1无具体错误排查求助
我使用无框架的标准Electron模板打包应用,执行npm run package或yarn run package --platform win32命令时出现错误,命令行仅提示退出码1,无具体错误信息。当前Node版本v16.14.0,相关信息如下:
命令输出
PS C:\GitHub\electron-project\lambda> yarn run package --platform win32 yarn run v1.22.22 $ electron-forge package --platform win32 ✔ Checking your system › Determining targets... ❯ Packaging for x64 on win32 ✔ Copying files ⠸ Preparing native dependencies ⠸ Finalizing package ◼ Running postPackage hook error Command failed with exit code 1. info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
forge.config.js配置
const { FusesPlugin } = require('@electron-forge/plugin-fuses'); const { FuseV1Options, FuseVersion } = require('@electron/fuses'); module.exports = { packagerConfig: { asar: true, }, rebuildConfig: {}, makers: [ { name: '@electron-forge/maker-squirrel', config: {}, }, { name: '@electron-forge/maker-zip', platforms: ['darwin'], }, { name: '@electron-forge/maker-deb', config: {}, }, { name: '@electron-forge/maker-rpm', config: {}, }, ], plugins: [ { name: '@electron-forge/plugin-auto-unpack-natives', config: {}, }, // Fuses are used to enable/disable various Electron functionality // at package time, before code signing the application new FusesPlugin({ version: FuseVersion.V1, [FuseV1Options.RunAsNode]: false, [FuseV1Options.EnableCookieEncryption]: true, [FuseV1Options.EnableNodeOptionsEnvironmentVariable]: false, [FuseV1Options.EnableNodeCliInspectArguments]: false, [FuseV1Options.EnableEmbeddedAsarIntegrityValidation]: true, [FuseV1Options.OnlyLoadAppFromAsar]: true, }), ], };
package.json配置
{ "name": "lambda", "productName": "lambda", "version": "alpha-1.0.0", "main": "src/index.js", "scripts": { "start": "electron-forge start", "package": "electron-forge package", "make": "electron-forge make", "publish": "electron-forge publish", "lint": "echo \"No linting configured\"" }, "devDependencies": { "@electron-forge/cli": "^7.4.0", "@electron-forge/maker-deb": "^7.4.0", "@electron-forge/maker-rpm": "^7.4.0", "@electron-forge/maker-squirrel": "^7.4.0", "@electron-forge/maker-zip": "^7.4.0", "@electron-forge/plugin-auto-unpack-natives": "^7.4.0", "@electron-forge/plugin-fuses": "^7.4.0", "@electron/fuses": "^1.8.0", "electron": "12.2.3", "tailwindcss": "^3.4.3" }, "keywords": [], "author": "skyrxzz", "description": "something but not empty", "license": "MIT", "dependencies": { "electron-squirrel-startup": "^1.0.1", "gkm": "^0.2.0", "robotjs": "^0.6.0" } }
排查方向
- 获取详细日志:执行打包命令时添加
--verbose参数,比如yarn run package --platform win32 --verbose,查看完整的执行日志,定位具体失败环节。 - 修复原生依赖编译问题:项目依赖的
gkm、robotjs属于需要编译的原生模块,Electron 12.2.3与Node v16.14.0的ABI版本可能不兼容。删除node_modules、yarn.lock后重新执行yarn install,再运行npx electron-rebuild确保原生模块适配当前Electron版本。 - 临时禁用Fuses插件:注释掉forge.config.js中的FusesPlugin配置块,重新打包测试,排查是否是Fuse设置导致的打包失败。
- 关闭asar打包测试:将packagerConfig中的
asar: true改为asar: false,测试是否是asar打包过程中出现错误。 - 清理缓存:删除项目根目录下的
.forge文件夹或全局~/.electron-forge缓存目录,再重新执行打包命令。
内容的提问来源于stack exchange,提问作者Adapt
相关产品推荐
相关产品推荐

