7

我有一个Electron应用程序,我想在其中引入并行发布渠道:stablenext(用于早期采用者)和dev(用于测试最新版本)。

它们每个都有一个分支,新功能首先dev出现nextstable.

我正在使用electron-builder来制作这些发布包,我希望每个包都有自己的自动更新 - 所以当我发布一个新next版本时,所有使用它的用户都会得到更新。

我希望应用程序是独立的 - 用户可以安装两个频道并同时运行这两个频道。它们会有不同的名称和不同的图标。

我可以在分支中手动设置这些,但我真的想尽可能地自动化 - 从next分支发布应该使用正确的名称、图标、ID 和更新程序,而不会有进入错误通道的风险。

有没有办法用电子或电子生成器做到这一点?

4

2 回答 2

9

有可能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.jsoncurrent.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
于 2017-03-13T02:29:37.673 回答
3

使用 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"
于 2018-07-04T14:58:45.237 回答