如何使用电子/电子构建器创建发布渠道?

时间:2016-11-24 10:26:45

标签: electron electron-builder

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

每个都有一个分支,新功能首先出现在dev中,进展到next进行Beta测试,最后进入stable

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

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

我可以在分支机构中手动设置它们,但实际上我想尽可能地自动化它 - 来自next分支的发布应该使用正确的名称,图标,ID和更新程序而不会有风险走错路。

有没有办法用电子或电子助手做到这一点?

2 个答案:

答案 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.jsonnext.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"