Delta 更新
复制一个包含安装步骤和本插件的完整 Markdown 指南的配置提示。
Capgo的Live Update系统可以通过仅发送更改的文件而不是整个JS包来更快、更高效地交付更新。
这尤其有利于使用较慢或计量网络连接的用户,因为它最小化了需要下载的数据量。
第二个好处是,当应用程序具有大量变化较少的资产时,例如图像或视频,相比于压缩的JS文件,它只会下载一次。
Delta(清单)更新的工作原理
标题:Delta(清单)更新的工作原理在Capgo中,Delta(清单)更新由Capgo插件处理,已安装在您的应用程序中。当您使用标志上传应用程序的新版本时,Capgo会执行以下操作: --delta flag, Capgo does the following:
- 为每个文件生成校验和
- How Delta (Manifest) Updates Work
- 创建一个新的 JSON 清单,列出所有文件及其校验和
- 本清单已上传至Capgo数据库。
当设备运行您的应用程序时,Capgo 插件从服务器接收新 manifest。它将此 manifest 与当前的 manifest 进行比较,根据校验和和文件路径确定哪些文件已更改。
该插件只下载更改的文件,而不是整个JS包。它通过将下载的这些文件与它已经有的未变更的文件结合起来,重建了应用程序的新版本。
启用Delta(清单)更新
Section titled “启用Delta(清单)更新”为了使您的Capgo应用支持Delta(清单)更新,只需使用 --delta 上传新版本时显示标志
npx @capgo/cli@latest bundle upload --delta如果 directUpdate 在您的 capacitor.config,CLI会检测到它。在非交互式环境中,它会自动发送Delta (清单)更新,在交互式环境中,它会在上传之前提示您确认。使用 --no-delta 强制进行完整的捆绑包上传。
强制Delta (清单)更新
标题:强制Delta (清单)更新如果您想确保所有上传都是Delta (清单)更新,并防止意外的完整捆绑包上传,请使用 --delta-only 标志:
npx @capgo/cli@latest bundle upload --delta-only当 --delta-only 如果使用此选项,Capgo 只会上传单个文件并生成一个清单。任何不支持Delta(清单)更新的设备都无法下载更新。
您可能想使用 --delta-only 如果:
- 您总是想使用Delta(清单)更新并且不想允许全量包上传
- 您正在设置CI/CD管道,并且希望确保所有自动上传都是Delta(清单)
- 您的应用程序很大,带宽受限,因此需要最小化上传/下载大小
如果您需要在 --delta-only 设置的情况下进行全量包上传,仅需运行上传命令而不 --delta-only。这将覆盖该单次上传的设置,允许您在需要时推送一个完整的包。
故障排除
标题为“故障排除”的部分如果Delta(清单)更新似乎没有工作(即,即使有小变化,设备也总是下载全量的JS包),请检查:
- 您正在使用
--delta每次上传新版本时都标记 - 如果使用
--delta-only确保您没有意外遗漏任何必要的文件。--delta旗帜 - 您的设备正在运行最新版本的Capgo插件。
- 您的设备有稳定的网络连接,可以访问Capgo服务器
您也可以使用Capgowebapp检查您的上次上传的详细信息。
- 去到 webapp
- 点击您的应用
- 点击统计条中的包数量
- 选择最后一个捆绑包
- 检查
Partial字段
如果您继续遇到问题,请联系Capgo支持团队,进一步协助。他们可以检查服务器日志,以确认您的Delta(清单)上传正在被正确处理,并且设备正在接收更新的清单。
完成!该标志告诉__CAPGO_KEEP_0__执行单独文件上传和清单生成所需的Delta(清单)更新。 --delta 注意:您需要在每次上传新版本时使用该标志,以便该版本被作为Delta(清单)更新。若省略该标志,Capgo将上传整个JS捆绑包作为单个文件,设备将下载整个捆绑包,即使只有小部分发生了变化。
编辑页面 --delta every time you upload a new version that you want to be delivered as a Delta (manifest) update. If you omit the flag, Capgo will upload the entire JS bundle as a single file, and devices will download the whole bundle even if only a small part has changed.