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

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 19:47:24