Electron-builder打包不同系统版本安装包

如果应用程序匹配不上系统很可能会造成打不开的情况,所以下面将会介绍一下如何使用Electron-builder打包成系统的安装包。

打包成不同位数的安装包的方式是通过定义package.json文件中的scripts的参数值去实现。(通过build参数对打包相关进行配置)

命令行参数(CLI)

我们可以直接执行一下相关命令,或者在package.json文件中简写对应参数。
如:

{
  "name": "electron-builder",
  "scripts": {
    "build": "electron-builder --win --ia32",
  },
}

以下是打包成Windows 32位系统的参数:

electron-builder --win --ia32

以下是Windows 64位系统的参数:

electron-builder --win --ia64

以下是linux系统的参数:

electron-builder --linux

以下是mac系统的参数:

electron-builder --mac

通过build参数配置打包配置

"build": {
    "productName":"xxxx",//项目名 这也是生成的exe文件的前缀名
    "appId": "com.leon.xxxxx",//包名  
    "copyright":"xxxx",//版权  信息
    "directories": { // 输出文件夹
      "output": "build"
    }, 
    "nsis": {
      "oneClick": false, // 是否一键安装
      "allowElevation": true, // 允许请求提升。 如果为false,则用户必须使用提升的权限重新启动安装程序。
      "allowToChangeInstallationDirectory": true, // 允许修改安装目录
      "installerIcon": "./install.ico",// 安装图标
      "uninstallerIcon": "./uninstall.ico",//卸载图标
      "installerHeaderIcon": "./installheader.ico", // 安装时头部图标
      "createDesktopShortcut": true, // 创建桌面图标
      "createStartMenuShortcut": true,// 创建开始菜单图标
      "shortcutName": "xxxx", // 图标名称
      "include": "build/script/installer.nsh", // 包含的自定义nsis脚本
    },
    "publish": [
      {
        "provider": "generic", // 服务器提供商 也可以是GitHub等等
        "url": "http://xxxxx/" // 服务器地址
      }
    ],
    "files": [ // 携带文件路径
      "dist/electron/**/*"
    ],
    "dmg": { //mac系统dmg包配置
      "contents": [
        {
          "x": 410,
          "y": 150,
          "type": "link",
          "path": "/Applications"
        },
        {
          "x": 130,
          "y": 150,
          "type": "file"
        }
      ]
    },
    "mac": { //mac系统包配置
      "icon": "build/icons/icon.icns"
    },
    "win": { //window系统包配置
      "icon": "build/icons/aims.ico",
      "target": [
        {
          "target": "nsis",
          "arch": [
            "ia32"
          ]
        }
      ]
    },
    "linux": { //linux系统包配置
      "icon": "build/icons"
    }
  }

Electron支持的WIN系统版本

‌Electron 22.0.0‌是最后一个支持Windows 7的版本。在这个版本中,Electron包括了新的实用进程API、对Windows 7/8/8.1支持的更新,以及对Chromium 108、V8 10.8和Node.js 16.17.1的升级。
从Electron 23.0.0开始,Electron取消了对Windows 7/8.1的支持,这标志着Electron将不再支持这些旧版本的操作系统。此外,这一变化与Chromium的弃用政策相符,也呼应了Microsoft对Windows 7 ESU(扩展安全更新)和Windows 8.1扩展支持结束的政策‌。

要配置 `electron-builder` 以生成适用于 Windows 64 位的安装包,需在项目中的 `package.json` 文件中设置构建配置。以下是一个完整的配置示例,确保生成的安装包适用于 Windows 平台,并且目标架构为 64 位(x64)。 ### 基本配置结构 在 `package.json` 文件中添加或修改 `build` 字段,以定义构建行为和输出格式: ```json { "name": "your-app", "version": "1.0.0", "main": "index.js", "scripts": { "dev": "electron .", "pack": "electron-builder --dir", "build": "electron-builder --win --x64" }, "build": { "appId": "com.example.yourapp", "asar": true, "directories": { "buildResources": "build", "output": "dist" }, "win": { "target": [ { "target": "nsis" } ], "arch": [ "x64" ], "icon": "build/icon.ico", "asarUnpack": [ "src/**", "README.md" ] }, "nsis": { "oneClick": false, "allowElevation": true, "allowToChangeInstallationDirectory": true, "installerIcon": "build/icon.ico", "uninstallerIcon": "build/icon.ico", "createDesktopShortcut": true, "createStartMenuShortcut": true } }, "devDependencies": { "electron": "^29.1.0", "electron-builder": "^24.13.3" } } ``` ### 关键配置说明 - **`scripts.build`**: 使用 `electron-builder --win --x64` 指定构建目标为 Windows 平台且架构为 64 位。 - **`build.win.target`**: 指定构建的安装包类型,`nsis` 是一个常用的 Windows 安装程序格式[^3]。 - **`build.win.arch`**: 明确指定构建架构为 `x64`。 - **`build.win.icon`**: 设置应用程序的图标,推荐使用至少 256x256 分辨率的 `.ico` 文件。 - **`build.nsis`**: 配置 NSIS 安装程序的选项,例如是否允许更改安装目录、是否创建桌面快捷方式等[^3]。 ### 执行打包命令 在项目根目录下运行以下命令以生成 Windows 64 位安装包: ```bash npm run build ``` 该命令将根据 `package.json` 中的配置生成一个适用于 Windows 的 64 位安装包,并输出到 `dist` 目录中。 ### 注意事项 - 确保 `electron-builder` 的版本Electron 版本兼容。 - 若需生成 32 位版本,可将 `arch` 设置为 `ia32` 或同时包含 `x64` 和 `ia32`。 - 安装包的输出路径可通过 `build.directories.output` 自定义。 - 若需签名安装包,可使用 `electron-builder create-self-signed-cert` 创建自签名证书[^2]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值