如何禁用electron-builder冗余文件生成及调整Mac输出目录命名
Electron Builder配置优化问题解答
一、禁用生成yal、yaml、zip、zip.blockmap等文件
你不需要自动更新功能,当前配置里的自动更新相关项是生成这些冗余文件的核心原因,调整如下:
- 移除自动更新相关配置
- 删除
generateUpdatesFilesForAllChannels字段(或设为false),这个选项会强制生成全渠道更新文件 - 删除
mac.publish配置块,自动更新发布配置会触发yaml等更新元文件的生成
- 删除
- 明确指定Mac目标格式为dmg
将mac.target.target从default改为dmg,default默认包含dmg和zip两种格式,改成dmg后只会生成镜像文件 - 确保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
相关产品推荐
相关产品推荐

