如何使用电子/电子生成器创建发布通道?
Posted
技术标签:
【中文标题】如何使用电子/电子生成器创建发布通道?【英文标题】:How to create release channels with electron/electron-builder? 【发布时间】:2017-04-08 14:38:38 【问题描述】:我有一个Electron 应用程序,我想在其中引入并行发布渠道:stable
、next
(用于早期采用者)和dev
(用于测试最新版本)。
它们每个都有一个分支,新功能首先出现在 dev
,然后进入 next
进行 beta 测试,最后进入 stable
。
我正在使用electron-builder 来制作这些发布包,并且我希望每个包都有自己的自动更新 - 所以当我发布新的next
发布时,所有使用它的用户都会得到更新。
我希望应用程序是独立的 - 用户可以安装两个频道并同时运行这两个频道。它们会有不同的名称和不同的图标。
我可以在分支中手动设置这些,但我真的想尽可能地自动化 - 从next
分支发布应该使用正确的名称、图标、ID 和更新程序,而不会有风险错误的频道。
有没有办法用电子或电子生成器做到这一点?
【问题讨论】:
【参考方案1】: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
],
并为next.json
和current.json
复制config/beta.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
【讨论】:
【参考方案2】:使用 electron-builder 版本 20.15.1 和 MacOS,@Jon Saw 的解决方案需要稍作更改,因为 em 选项无效:
"build-beta": "build -owl --x64 --config ./config/beta.json -p always -c.extraMetadata.name=app-beta"
【讨论】:
您好,感谢您的反馈,欢迎来到 SO。作为对 Jon Saw 答案的评论,这会更好,因为这样他们会收到通知。以上是关于如何使用电子/电子生成器创建发布通道?的主要内容,如果未能解决你的问题,请参考以下文章