3.6 子游戏热更新方案

兄弟可以具体点吗

我就是想混合用,就是考虑bundle 要勾选md5,而热更新又不能勾选md5而纠结。

大佬,热更新不应该是在文件中加上MD5这种唯一标识才能实现吗

大佬们

你们有遇过有脚本代码被打包到打包到src/chunks/bundle.js而不是原本的bundle里吗?

一但有被包到的脚本,那段就没办法热更新了

@shrinktofit 有类加载缓存的 清理掉就好了 你看下类缓存的地方

这个是我们目前的方案 需要注意的就是ccclass 和文件名称保持一致 不同bundle 文件名称最好不要一样

另外关于pb生成的js文件热更新 这边的方案是用脚本把 pb 生成的 js 文件和 d.ts 文件 合并 并修改 js中语法的错误

项目已经准备上线 现在还有一些崩溃的问题需要解决基本就是都是资源意外被释放了

1赞

参考了下现有的热更新卸载修改成下面了


同步了3.7.2子包依赖main配置的bug 通过bundle名称找需要卸载的classs和其他信息

你好,请问一下,script_cache_tab和system_js分别是什么类型?在哪里赋值的呢?

你参考下https://forum.cocos.org/t/topic/139800/38?u=304796487

这个方法写哪里?在哪里调用的呢?

看你自己咯,又不是一样的工程,只是一个函数随便放哪 你能调用到就好了

你这个还是要限制项目规范,因为有可能 ccclass 不在模块内导出,而是模块的命名空间中导出,比如我 :joy:

1赞

我才玩js 没多久 不是很懂 可以举个例子吗?

namespace _test {
    @ccclass("data")
    export class data {
    }
}

@ccclass
export class A {
    @property(_test.data)
    data = null;
}

这种甚至都不给你导出,按照上面的代码是热更不了的

没这么写过 不清楚 :rofl:

md5异常是因为引擎里面加载bundle挂载js的时候。用的新md5的js路径,造成js加载异常,需要改引擎

新问题 因为加载web-adapter.js 在 main.js 之前 会导致 web-adapter.js 更新不了 @1226085293 你们再哪修改的搜索路径,目前我们上线了这个热更不了有点难受,

搜索路径?我用的是 bundle 更新,根本就更不到这个文件,你是什么操作会更新 web-adapter.js ?

同步3.8.0的修复