我有一个Electron应用,我想引入并行发布渠道:stable
,next
(适用于早期采用者)和dev
(用于测试最新版本)
每个都有一个分支,新功能首先出现在dev
中,进展到next
进行Beta测试,最后进入stable
。
我使用electron-builder制作这些发布包,我希望每个人都有自己的自动更新 - 所以当我发布新的next
版本时,所有用户都会获得它更新。
我希望应用程序是独立的 - 用户可以安装两个通道并同时运行。他们会有不同的名字和不同的图标。
我可以在分支机构中手动设置它们,但实际上我想尽可能地自动化它 - 来自next
分支的发布应该使用正确的名称,图标,ID和更新程序而不会有风险走错路。
有没有办法用电子或电子助手做到这一点?
答案 0 :(得分:7)
electron-builder
可能。我会有几个构建配置并告诉electron-builder
在构建时使用哪些。
例如,使用以下设置创建文件config/beta.json
:
{
"appId": "com.company.beta",
"productName": "App Beta",
"directories": {
"buildResources": "build/beta" // directory containing your build-specific assets (e.g., beta icons - icon.icns, icon.ico & background.png)
},
"mac": {
"category": "public.app-category.finance"
},
"win": {
"target": [
"nsis"
]
},
"nsis": {
"perMachine": false
},
"publish": [
{
"provider": "s3",
"bucket": "com-app-beta" // dedicated S3 bucket for each build
}
],
}
并为config/beta.json
和next.json
复制current.json
(请务必相应地修改设置)。
在package.json
中,添加以下构建脚本(注意--em.name=app-beta
以覆盖package.json
"名称"值):
{
"scripts": {
"build": "build -owl --x64 --config ./config/current.json -p always --em.name=app",
"build-beta": "build -owl --x64 --config ./config/beta.json -p always --em.name=app-beta",
"build-next": "build -owl --x64 --config ./config/next.json -p always --em.name=app-next"
}
}
准备好部署时运行构建脚本:
npm run build-beta
答案 1 :(得分:2)
使用电子生成器20.15.1版和MacOS,@ Jon Saw的解决方案需要做一些细微的更改,因为em无效:
"build-beta": "build -owl --x64 --config ./config/beta.json -p always -c.extraMetadata.name=LMS-UNO"