metro-code-split icon indicating copy to clipboard operation
metro-code-split copied to clipboard

这个分chunk加载和ramBundle有啥区别吗

Open hf529270451 opened this issue 3 years ago • 3 comments

hf529270451 avatar Jul 13 '21 10:07 hf529270451

  1. 我个人的理解是
  • RAM Bundles 优化的是“执行效率” 本质native端做事情 整个流程看起来像是 热更新下载一个完整的RAM Bundles,“执行”首屏代码,按需“执行”每个模块
  • Dynamic Imports 是针对 非RAM Bundles 就是一种纯Web思想的解决方案 优化的是主包的体积 整个流程看起来像是 热更新下载首屏代码 用户需要时按需下载其他模块
  • 不管是在方案还是使用场景 都没有什么共同点 完全就是2个东西,唯一相同可能就只有目的都是优化性能
  1. 目前集团内部 没有计划支持RAM
  • 研过ios RAM Bundles 优化数据并没有达到收益预期
  • 我们有计划使用 Hermes JS Engine 而无法使用RAM包功能
  • 现阶段平台方和native 需要针对 RAM Bundles 热更新和缓存策略给予支持

zq0904 avatar Jul 14 '21 07:07 zq0904

@zq0904 metro-code-split 基本都是JS端做的事情,那么是否可以支持0.59~0.63的RN版本?

mattlin avatar Oct 11 '21 05:10 mattlin

@zq0904 Metro-code-split 基本都是JS端做的事情,那是否可以支持0.59~0.63的RN版本?

  1. 为了使开源项目清晰简单易用,正如你看到的开源项目的Dynamic Imports部分都是js在做事情,但事实上native双端是可以在js上下文中直接注入代码来实现类似web中script标签的标准化(我们内部也是这么实现的)。

  2. 关于版本的支持 主要依赖metro的版本 而非react-native,你可以看下readme 中 与Metro版本的兼容性 部分,对于低版本metro若不兼容 尚无计划支持。

zq0904 avatar Oct 11 '21 07:10 zq0904