网易首页 > 网易号 > 正文 申请入驻

electron-builder 打包生成桌面App

0
分享至

开发electron客户端程序,打包是绕不开的问题。

如何使用

来源:https://www.php.cn/div-tutorial-411690.html

builder的使用和配置都是很简单的

builder配置有两种方式

package.json中直接配置使用(比较常用,我们下面着重来讲这个)

指定electron-builder.yml文件

下面是一个简单的package.js中带注释的配置

  • 基础配置

  • "build": { // 这里是electron-builder的配置


  • "productName":"xxxx",//项目名 这也是生成的exe文件的前缀名


  • "appId": "com.xxx.xxxxx",//包名


  • "copyright":"xxxx",//版权 信息


  • "directories": { // 输出文件夹


  • "output": "build"


  • },


  • // windows相关的配置


  • "win": {


  • "icon": "xxx/icon.ico"//图标路径


  • }


  • }


在配置文件中加入以上的文件之后就可以打包出来简单的文件夹,文件夹肯定不是我们想要的东西。下一步我们来继续讲别的配置。

  • 打包目标配置

要打包成安装程序的话我们有两种方式,

  • 使用NSIS工具对我们的文件夹再进行一次打包,打包成exe

  • 通过electron-builder的nsis直接打包成exe,配置如下

  • "win": { // 更改build下选项


  • "icon": "build/icons/aims.ico",


  • "target": [


  • {


  • "target": "nsis" // 我们要的目标安装包


  • }


  • ]


  • },


其他平台配置

"dmg": { // macOSdmg
"contents": [
...
]
},
"mac": { // mac
"icon": "build/icons/icon.icns"
},
"linux": { // linux
"icon": "build/icons"
}

nsis配置

这个要详细的讲一下,这个nsis的配置指的是安装过程的配置,其实还是很重要的,如果不配置nsis那么应用程序就会自动的安装在C盘。没有用户选择的余地,这样肯定是不行的

关于nsis的配置是在build中nsis这个选项中进行配置,下面是部分nsis配置

"nsis": {
"oneClick": false, // 是否一键安装
"allowElevation": true, // 允许请求提升。 如果为false,则用户必须使用提升的权限重新启动安装程序。
"allowToChangeInstallationDirectory": true, // 允许修改安装目录
"installerIcon": "./build/icons/aaa.ico",// 安装图标
"uninstallerIcon": "./build/icons/bbb.ico",//卸载图标
"installerHeaderIcon": "./build/icons/aaa.ico", // 安装时头部图标
"createDesktopShortcut": true, // 创建桌面图标
"createStartMenuShortcut": true,// 创建开始菜单图标
"shortcutName": "xxxx", // 图标名称
"include": "build/script/installer.nsh", // 包含的自定义nsis脚本 这个对于构建需求严格得安装过程相当有用。
"script" : "build/script/installer.nsh" // NSIS脚本的路径,用于自定义安装程序。 默认为build / installer.nsi
},

关于include 和 script 到底选择哪一个 ?

在对个性化安装过程需求并不复杂,只是需要修改一下安装位置,卸载提示等等的简单操作建议使用include配置,如果你需要炫酷的安装过程,建议使用script进行完全自定义。

NSIS对于处理安装包这种东西,功能非常的强大。但是学习起来并不比一门高级语言要容易。其中的奥秘还要各位大佬自行探索

这里上一些学习资源

  • NSIS初级篇

  • NSIS 打包脚本基础

  • 示例脚本

  • NSIS论坛

  • 关于操作系统的配置

主要是windows中64和32位的配置

CLI参数

electron-builder --ia32 // 32位
electron-builder // 64位(默认)
nsis中配置
"win": {
"icon": "build/icons/aims.ico",
"target": [
{
"target": "nsis",
"arch": [ // 这个意思是打出来32 bit + 64 bit的包,但是要注意:这样打包出来的安装包体积比较大,所以建议直接打32的安装包。
"x64",
"ia32"
]
}
]
}

更新配置

下面这个是给更新用的配置,主要是为了生成lastest.yaml配置文件

"publish": [
{
"provider": "generic", // 服务器提供商 也可以是GitHub等等
"url": "http://xxxxx/" // 服务器地址
}
],

完整配置

基本上可用的完整的配置

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

命令行参数(CLI)

Commands(命令):

electron-builder build 构建命名 [default]

electron-builder install-app-deps 下载app依赖

electron-builder node-gyp-rebuild 重建自己的本机代码

electron-builder create-self-signed-cert 为Windows应用程序创建自签名代码签名证书

electron-builder start 使用electronic-webpack在开发模式下运行应用程序(须臾要electron-webpack模块支持)

Building(构建参数):

--mac, -m, -o, --macos Build for macOS, [array]
--linux, -l Build for Linux [array]
--win, -w, --windows Build for Windows [array]
--x64 Build for x64 (64位安装包) [boolean]
--ia32 Build for ia32(32位安装包) [boolean]
--armv7l Build for armv7l [boolean]
--arm64 Build for arm64 [boolean]
--dir Build unpacked dir. Useful to test. [boolean]
--prepackaged, --pd 预打包应用程序的路径(以可分发的格式打包)
--projectDir, --project 项目目录的路径。 默认为当前工作目录。
--config, -c 配置文件路径。 默认为`electron-builder.yml`(或`js`,或`js5`)

Publishing(发布):

--publish, -p 发布到GitHub Releases [choices: "onTag", "onTagOrDraft", "always", "never", undefined]
<font color="red">Deprecated(废弃):</font>
--draft 请改为在GitHub发布选项中设置releaseType [boolean]
--prerelease 请改为在GitHub发布选项中设置releaseType [boolean]
--platform 目标平台 (请更改为选项 --mac, --win or --linux)
[choices: "mac", "win", "linux", "darwin", "win32", "all", undefined]
--arch 目标arch (请更改为选项 --x64 or --ia32)
[choices: "ia32", "x64", "armv7l", "arm64", "all", undefined]
Other(其他):
--help Show help [boolean]
--version Show version number [boolean]
Examples(例子):
electron-builder -mwl 为macOS,Windows和Linux构建(同时构建)
electron-builder --linux deb tar.xz 为Linux构建deb和tar.xz
electron-builder -c.extraMetadata.foo=bar 将package.js属性`foo`设置为`bar`
electron-builder --config.nsis.unicode=false 为NSIS配置unicode选项

TargetConfiguration(构建目标配置):

target: String - 目标名称,例如snap.
arch “x64” | “ia32” | “armv7l” | “arm64”> | “x64” | “ia32” | “armv7l” | “arm64” -arch支持列表

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
食堂阿姨总给我少菜,毕业后,我回校当评委,发现她女儿在名单上

食堂阿姨总给我少菜,毕业后,我回校当评委,发现她女儿在名单上

纸鸢奇谭
2026-05-19 16:19:37
上映16天被观众赶出院线!网播也救不了它,事实证明烂片已无市场

上映16天被观众赶出院线!网播也救不了它,事实证明烂片已无市场

星宿影视鸭
2026-06-11 14:45:57
疑阿里员工爆料:所在部门50%已离职,N+1到手转行跨境电商

疑阿里员工爆料:所在部门50%已离职,N+1到手转行跨境电商

六子吃凉粉
2026-06-12 11:13:32
“我给他提供吃穿用度,还要给他开工资”,五位“杀猪盘”受害者亲述,恋爱骗局如何榨干他们的人生

“我给他提供吃穿用度,还要给他开工资”,五位“杀猪盘”受害者亲述,恋爱骗局如何榨干他们的人生

新京报
2026-06-12 21:29:40
95年妻子去世后,丈母娘把妻姐许给我,新婚夜我才知道赚大了

95年妻子去世后,丈母娘把妻姐许给我,新婚夜我才知道赚大了

千秋文化
2026-06-11 18:00:17
私生活混乱,从央视主持到劳改犯,如今靠直播打赏讨生活

私生活混乱,从央视主持到劳改犯,如今靠直播打赏讨生活

素衣读史
2026-06-11 21:56:30
石家庄突降暴雨,天空“一秒变黑”,碗口粗行道树被连根拔起,应急局工作人员回应

石家庄突降暴雨,天空“一秒变黑”,碗口粗行道树被连根拔起,应急局工作人员回应

极目新闻
2026-06-13 14:40:34
中国一年51万人确诊肠癌!建议:不管多大年纪,记住6个护肠方法

中国一年51万人确诊肠癌!建议:不管多大年纪,记住6个护肠方法

路医生健康科普
2026-06-09 15:39:43
国内20家独一份科技龙头,每一家都无可替代

国内20家独一份科技龙头,每一家都无可替代

粤语音乐喷泉
2026-06-13 11:34:05
天生带财库!三大生肖富贵命,今年财神为你撑腰,早晚要发财!

天生带财库!三大生肖富贵命,今年财神为你撑腰,早晚要发财!

毅谈生肖
2026-06-13 11:31:58
立刻停止食用这些粗粮,吃得越多,肠癌风险越高?医生告诉你真相

立刻停止食用这些粗粮,吃得越多,肠癌风险越高?医生告诉你真相

叙说医疗健康
2026-06-13 07:00:16
“胖东来员工不值这么多钱”引热议,于东来再回应:所有员工能力与薪酬不匹配,未来永远用超值薪酬成就员工

“胖东来员工不值这么多钱”引热议,于东来再回应:所有员工能力与薪酬不匹配,未来永远用超值薪酬成就员工

每日经济新闻
2026-06-13 12:53:36
上海徐汇失联男幼师身亡事件最新进展!死因公布,真相大白

上海徐汇失联男幼师身亡事件最新进展!死因公布,真相大白

凡知
2026-06-13 12:00:36
2026事业编迎来大调整,五类岗位必须转企,编制从此退出历史舞台

2026事业编迎来大调整,五类岗位必须转企,编制从此退出历史舞台

芳姐侃社会
2026-06-12 23:43:24
72岁林青霞低调亮相!白发素颜不扮嫩,状态松弛,这才是优雅老去

72岁林青霞低调亮相!白发素颜不扮嫩,状态松弛,这才是优雅老去

观鱼听雨
2026-06-08 23:48:05
对于后天周一A股,我只说4句话:第一,3927点大概率是婴儿底!

对于后天周一A股,我只说4句话:第一,3927点大概率是婴儿底!

趋势清风侠
2026-06-13 10:42:56
1962年学生问麦克阿瑟:让你重回朝鲜战场,能不能打败中国军队?

1962年学生问麦克阿瑟:让你重回朝鲜战场,能不能打败中国军队?

野史日记
2026-06-11 22:10:08
调整!6月13日央视直播乒乓有变 陈熠冲决赛,首金诞生

调整!6月13日央视直播乒乓有变 陈熠冲决赛,首金诞生

削桐作琴
2026-06-13 14:32:51
光刻机巨头意识到,中国造不成光刻机,但是要造一个光刻工厂!

光刻机巨头意识到,中国造不成光刻机,但是要造一个光刻工厂!

明天见灌装冰块
2026-06-13 09:21:03
金价,又来一次心跳。

金价,又来一次心跳。

老陆不老
2026-06-13 07:19:52
2026-06-13 16:11:00
码坊
码坊
IT类软件开发文章
60文章数 324关注度
往期回顾 全部

科技要闻

SpaceX上市首日破2万亿美元,马斯克再封神

头条要闻

南博会商品现涉黄二维码 网友称扫码会跳转至色情网站

头条要闻

南博会商品现涉黄二维码 网友称扫码会跳转至色情网站

体育要闻

东道主三战不败!美墨开门红加拿大零的突破

娱乐要闻

12年情怀碎一地!跑男接连翻车

财经要闻

梁文锋向左,杨植麟向右

汽车要闻

阿维塔概念车重庆车展亮相 阿维塔07L将于三季度发布

态度原创

家居
教育
数码
公开课
军事航空

家居要闻

空间微调 移形换境

教育要闻

2026青岛+济南+山东统考中考作文题目来了

数码要闻

加载时间将大幅缩短!微软正式推出ASD通用版:支持全线RDNA架构显卡

公开课

李玫瑾:为什么性格比能力更重要?

军事要闻

伊外长披露伊美谅解备忘录草案部分内容

无障碍浏览 进入关怀版