3.8文档热更新教程中关于【注意】内容的疑问

3.8文档热更新教程:点这里跳转 说构建版本时 说勾选选 MD5会导致更新无效。

请问为何会无效,是有什么隐藏的坑吗?(我实测勾选后也是更新成功了的。如果不勾选,那cdn会存在文件缓存,每次更新需要刷新cdn,我个人倾向于开启md5,这样比较保险。)

好像是说会加载到旧文件

为什么会旧呢?md5只是影响资源文件名,文件名是生成在 project.manifest文件中。无论是否启用md5, 整个更新流程是一致的。

因为main.js 是不会热更的,你开了md5 main.js里面加载的脚本资源就固定死了,你热更后无法覆盖原来的脚本,因为名字不一样了

但是热更的设计居然不能用md5 我觉得很奇葩

如果只是这个原因那好解决,main.js 主要引用了 application.js, import-map.json, system.bundle.js 等几个文件,这几个文件极少修改,改的话可以放在 apk大版本上修改

然后 最重要的是 application.js 引入的 settings.json文件,这个文件修改不到,我准备 这个文件名 从 project.manifest 里面提取 动态赋值

这样就解决了 不能用 md5的问题

好像有不少坑 我以前试过几下 然后放弃了 :rofl:

至少你得去改一下原生代码 加载version和manifest那里 ,请求的时候没有+时间戳 包被cdn缓存

可以考虑下我这个热更新插件~

应该不需要改原生代码吧?version和project的路径是配置在 manifest里面的(remoteManifestUrl和remoteVersionUrl),我准备把这2个文件名改成 *.php,然后文件放在 cvm机器上(非cdn),这样就没有缓存了,不过我还没去测试