- 目标平台:andorid ios
项目采用全bundle的热更形式 代码和资源都是基于Bundle形式热更新。发现引擎打包会将npm的依赖打包到src\chunks\bundle.xxx.js里面。然后又将代码合并了。并且修改了Bundle代码中对npm外部代码的引用。比如bundle原来引用的是a.js 打包后变成了引用index.js->包含了a.js这个是src\chunks\bundle.xxx.js重新定义的。 但是热更bundle本身是不会热更底包src\chunks\bundle.xxx.js的。导致但凡NPM有点什么改变(例如删除了一个外部依赖)。打包后的src\chunks\bundle.xxx.js变成了index3.js引用->a.js 然后bundle代码中引用也变成了引用index3.js 导致热更下来的bundle代码根本找不到index3.js。
一个热更包,可以像你那样子,只包含一个 AssetBundle
但是这是有短板的,就像你现在这样子,没法包含额外的文件,导致没法热更新到
所以你应该重新定义你的热更包,让他可以包含自定义的内容
比如:
- 主热更包包括 src/
- 子热更包包括 1个 bundle
- 子热更包包括 N个 bundle
- 子热更包包括 任意内容
如果是用我的插件的话,就是这个思想
https://www.yuque.com/dhunterstudio/gg/hot-update#MlB5T
比如: src/ 一般可以在主包中包含这一块
{
"build-in": {
"files": [
"src/",
"jsb-adapter/",
"assets/internal/",
"assets/main/",
"assets/resources/",
"assets/bundle-game-a/"
]
}
}
我主包必须勾选MD5。这个插件不支持吧。
不支持,不想支持,不要买,按照差不多思想,改造一下你的就好~
嗯嗯。大概思路有了。谢谢
