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

如何禁用electron-builder冗余文件生成及调整Mac输出目录命名

Electron Builder配置优化问题解答

一、禁用生成yal、yaml、zip、zip.blockmap等文件

你不需要自动更新功能,当前配置里的自动更新相关项是生成这些冗余文件的核心原因,调整如下:

  1. 移除自动更新相关配置
    • 删除generateUpdatesFilesForAllChannels字段(或设为false),这个选项会强制生成全渠道更新文件
    • 删除mac.publish配置块,自动更新发布配置会触发yaml等更新元文件的生成
  2. 明确指定Mac目标格式为dmg
    将mac.target.target从default改为dmg,default默认包含dmg和zip两种格式,改成dmg后只会生成镜像文件
  3. 确保Windows仅生成NSIS安装包
    当前Windows配置已经指定target: nsis,保持即可,不会生成额外zip文件

修改后的build配置如下:

"build": {
  "appId": "we-media-helper",
  "copyright": "Copyright © 2022 Eve-Sama",
  "directories": {
    "output": "./dist/installer"
  },
  "mac": {
    "target": {
      "target": "dmg",
      "arch": [
        "arm64",
        "x64",
        "universal"
      ]
    },
    "icon": "./assets/icons/mac-dock.icns"
  },
  "dmg": {
    "writeUpdateInfo": false
  },
  "nsis": {
    "differentialPackage": false,
    "oneClick": false,
    "allowElevation": true,
    "allowToChangeInstallationDirectory": true,
    "installerIcon": "./assets/icons/win-taskbar.ico",
    "uninstallerIcon": "./assets/icons/win-taskbar.ico",
    "installerHeaderIcon": "./assets/icons/win-taskbar.ico",
    "createDesktopShortcut": true,
    "createStartMenuShortcut": true,
    "artifactName": "${productName}_Setup_${version}.${ext}"
  },
  "win": {
    "icon": "./assets/icons/win-taskbar.ico",
    "target": [
      {
        "target": "nsis",
        "arch": [
          "ia32"
        ]
      }
    ]
  },
  "files": [
    "**/*",
    "!dist/installer",
    "!**/*.ts",
    "!**/*.tsx",
    "!src/",
    "!public/",
    "!.eslintignore",
    "!.eslintrc.js",
    "!.gitignore",
    "!.prettierrc",
    "!gulpfile.ts",
    "!LICENSE",
    "!package-lock.json",
    "!README.md",
    "!tsconfig.json",
    "!yarn.lock"
  ],
  "extends": null
}

二、Mac输出目录为mac而非mac-x64的原因及解决方法

原因

你同时指定了arm64、x64、universal三个架构,Electron Builder会将多架构的构建产物统一放在mac目录下,而不会为单个架构单独创建命名目录。

解决方法

如果需要为每个架构生成独立的命名目录(比如mac-x64、mac-arm64、mac-universal),需要将mac的target配置拆分为多个独立的target对象,每个对象对应一个架构:

"mac": [
  {
    "target": "dmg",
    "arch": "x64"
  },
  {
    "target": "dmg",
    "arch": "arm64"
  },
  {
    "target": "dmg",
    "arch": "universal"
  }
],

这样构建后,dist/installer目录下会分别生成mac-x64、mac-arm64、mac-universal三个子目录,每个目录下对应各自架构的dmg文件。


内容的提问来源于stack exchange,提问作者Eve-Sama

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 15:40:38