electron-builder使用简介
使用electron, 打包必不可免, 官方推荐electron-builder库进行应用打包.
本篇主要就工作中用到的electron-builder打包功能进行总结.
一、安装
项目目录执行命令:
1 | yarn add -D electron-builder |
二、构建配置
可以直接在package.json中配置,也可以添加electron-builder.yml(yml,json5,toml,js)文件进行配置,以package.json配置为例
基础配置
1 | "build": { |
除了上述的基本配置,对应不同的平台,还可以有不同的配置参数,如下:
MacOS平台配置
Window平台配置
- win: Windows平台构建选项, 详见
- nsis: nsis 构建选项, 详见
- nsisWeb: nsis web安装包构建选项, 继承自nsis构建选项, 详见
- appx: Windows应用程序商店构建选项, 详见
- squirrelWindows: 已废弃
Linux平台配置
- linux: Linux平台构建选项, 详见
- deb: Linux deb包构建选项, 详见
- snap: Linux snap包构建选项, 详见
- appImage: Linux appImage包构建选项, 详见
- rpm: Linux rpm包构建选项, 详见
- freebsd: Linux freebsd包构建选项, 详见
- p5p: Linux p5p包构建选项, 详见
- apk: Linux apk包构建选项, 详见
既能配置在build项, 又能在每个平台中复写的配置
appId = com.electron.${name} String - 应用程序id
artifactName String - 构建生成的文件名字模板, 默认为 ${productName}-${version}.${ext} (有些平台会有不同的默认值,具体查看各自平台的配置)
compression = normal “store” | “normal” | “maximum” - 压缩等级 如果要快速测试构建,store 能够显著地缩短构建时间,maximum 不会导致明显的尺寸差异,但是会增加构建时间。
files Array<String | FileSet> | String | FileSet - 打包包含文件 默认包含项目根目录文件
extraResources Array<String |FileSet> | String | FileSet - 外部资源路径,项目目录相对路径,拷贝匹配的目录或文件到应用程序资源目录下(对于MacOS是Contents/Resources, 对于Linux和Windows是resources)
1 | FileSet = { |
- extraFiles Array<String | FileSet> | String | FileSet - 和extraResources类似,只是拷贝目标目录是应用程序内容目录(对于MacOS是Contents,对于Linux和Windows是根目录)
- asar AsarOptions | Boolean - 是否打包程序源代码为Electron的压缩包格式
1 | AsarOptions = { |
- fileAssociations Array<FileAssociation> | FileAssociation - 关联文件(特定格式的文件,双击后用此应用程序打开)
1 | FileAssociation = { |
- forceCodeSigning Boolean - 当应用程序签名失败时, 是否打包失败
- electronUpdaterCompatibility = “>=2.15” String - electronUpdater兼容版本, e.g. >= 2.16, >=1.0.0.
- publish 发布设置 详见
- detectUpdateChannel = true Boolean - (待理解) Whether to infer update channel from application version pre-release components. e.g. if version 0.12.1-alpha.1, channel will be set to alpha. Otherwise to latest.
- generateUpdatesFilesForAllChannels = false Boolean - (待理解) Please see Building and Releasing using Channels.
- releaseInfo releaseInfo - 发布信息. 用于命令行使用:
1 | c.releaseInfo.releaseNotes="new features" |
1 | releaseInfo = { |
三、命令及参数
package.json文件中添加打包执行脚本(以windows 64位包为例)
1 | electron-builder --win --x64 |
命令
electron-builder build 构建应用 [默认值]
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模块支持)
构建参数
–mac, -m, -o, –macos 为macOS平台构建 [array]
–linux, -l 为linux平台构建 [array]
–win, -w, –windows 为windows平台构建 [array]
–x64 构建64位安装包 [boolean]
–ia32 构建32位安装包 [boolean]
–armv7l 构建armv7l安装包 [boolean]
–arm64 构建arm64安装包 [boolean]
–dir 只构建未打包目录. 对于测试特别有用 [boolean]
–prepackaged, –pd 预打包应用程序的路径(以可分发的格式打包)(这个参数有点难以理解, 详见)
–projectDir, –project 项目目录的路径。 默认为当前工作目录。
–config, -c 配置文件路径。 默认为electron-builder.yml
(或js
, 或js5
), 详见
发布
–publish, -p 发布到GitHub Releases [选项: “onTag”, “onTagOrDraft”, “always”, “never”, undefined]
其他
–help 显示帮助 [boolean]
–version 显示当前版本号 [boolean]
例子
electron-builder –win –x64 构建windows 64位版本
electron-builder -mwl 为macOS, Windows和Linux构建(同时构建)
四、参考链接
https://www.electron.build/
https://github.com/electron-userland/electron-builder
https://github.com/QDMarkMan/CodeBlog/blob/master/Electron/electron-builder%E6%89%93%E5%8C%85%E8%AF%A6%E8%A7%A3.md
https://stackoverflow.com/questions/54978918/what-is-the-purpose-of-buildresources-folder-in-electron-builder-building-proces
https://blog.csdn.net/qq_38830593/article/details/89843722
https://forum.snapcraft.io/t/how-do-i-make-the-polarr-snap-associate-with-image-files/7316
本文作者:雪糕
本文地址: https://blooddot.cool/posts/1867545/
版权声明:转载请注明出处!