电子如何创建增量文件

electron how to create delta file

我使用 electron-builder 构建我的应用程序并成功构建了包含三个输出的第一个版本:foosetup.exe、foo-0.0.1-full.nupkg 和 RELEASES.Now 我想实现自动更新,我已经使用 electron-release-server.

部署了后端服务

自动更新需要设置一个feedURL用来获取更新,但问题是我不知道更新到底是什么意思?是foo-0.0.1-full.nupkgfoo-0.0.1-delta.nupkg 或其他文件?

第二个问题是我不知道如何创建增量 file.I 只能在 electron-builder 中找到一个选项 remoteReleasesa URL to your existing updates.If given,these will be downloaded to create delta file。但是URL 到底是什么意思?我找到了一个 "remoteRelease": "https://github.com/user/repo" 的例子,它会创建一些版本并为每个版本上传许多额外的文件,例如 foosetup.exe, foo-xx-full-nupkg, RELEASES。我猜 electron-builder 会获取 ${remoteReleases/release/download/some-version/xxx} 来下载文件,然后将这两个文件进行比较以创建增量文件,但是当我创建发布时我无法上传 RELEASES github,报告they don't support this file type。 有没有人可以提供帮助?初学者需要遵循的文档很少

对于electron-release-server请查看the docs.

如果您使用 electron-builder,将自动创建增量文件。但是为了使其工作 remoteReleases 必须设置为有效(且可达)URL plus 必须至少有一个名为 [=11= 的空文件].因此,对于第一个构建,只需创建一个空文件并将其命名为 RELEASES.

在未来的每个版本中,都会为您创建一个 RELEASES 文件。将所有生成的文件扔到您的发布服务器中(覆盖现有的 RELEASES),这样就没问题了。

注意: 对于 electron-release-server 你不需要 electron-builder 生成的 RELEASES。 electron-release-server 会自己创建一个。


要开始使用自动更新,我建议您在本地设置一个极其简单的发布服务器。即:

  • 创建一个目录并在其中放入一个空文件RELEASES
  • 然后启动一个指向该目录的简单网络服务器(例如 cd into/your/dir && php -S 0.0.0.0:80)。
  • 编辑您的 package.json"remoteRelease": "http://localhost"
  • 然后构建安装程序:npm run dist 它应该会成功构建,并且您应该会在本地服务器上看到一些 GET 请求。
  • 将生成的文件放入你创建的目录中。
  • 现在增加你的版本并开始另一个构建:npm run dist 您应该会再次看到一些 GET 请求,并且应该会创建一个附加的增量文件。
  • 再次将所有这些东西放入目录中(或者对于 electron-release-server 将资产 .nupkg、.exe 和 delta 上传到新版本中)。

希望对您有所帮助。如果有什么不清楚的地方,请随时发表评论。

查看我创建的这个示例应用 https://github.com/electron-delta/electron-sample-app

它使用两个 npm 包。

  1. @electron-delta/builder
  2. @electron-delta/updater

更多详情https://github.com/electron-delta/electron-delta#installation