一种基于资源清单协议的微前端架构实现方法和装置制造方法及图纸

技术编号:37462572 阅读:22 留言:0更新日期:2023-05-06 09:35
本申请提供一种基于资源清单协议的微前端架构实现方法和装置,属于通信技术领域。该方法包括生成资源清单,资源清单为主页的入口chunk的依赖关系列表,资源清单的文件格式为json文件;进行服务间共享依赖的注册和微服务本身的注册;加载资源地址表,按照用户的配置预下载资源列表中的资源,按照加载顺序串行执行;在资源清单的基础上建立通信协议,根据通信协议进行主子服务和子子服务之间的通信。本申请提供一套完整的微前端架构的基础机制,能够低成本的对现有大型项目进行微前端改造,提高效率。高效率。高效率。

【技术实现步骤摘要】
一种基于资源清单协议的微前端架构实现方法和装置


[0001]本申请涉及通信
,尤其涉及一种基于资源清单协议的微前端架构实现方法和装置。

技术介绍

[0002]随着前后端分离开发模式的流行,浏览器功能的日益强大,前端在整个系统的建设中承担的职责越来越大,比例越来越重,一些系统在迭代的过程中不可避免的变成了一个巨型系统。为降低维护成本和提升可扩展性,服务端往往采用微服务的架构来应对,相应的成熟框架也比较多,而前端由于一些现实因素,至今没有一个比较成熟的方案。
[0003]理论上,前端微服务化(后简称微前端)是解决这个问题的不二之选,可缺乏统一成熟的落地框架。目前业界较出名的有阿里的qiankun,京东的microApp,还有基于webpack5的Module Federation实现的EMP,这些框架设计上各有利弊,由于前端的特殊性,这些框架要么只解决了其中的一部分问题,要么封装的太死,灵活性不够,要么定位上本就不是为微前端设计,系统整体不支持精细化的打包优化,且都缺乏比较大型的落地案例支撑,且直接用这些框架架构新项目可能比较合适,但本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种基于资源清单协议的微前端架构实现方法,其特征在于,包括:生成资源清单,所述资源清单为主页的入口chunk的依赖关系列表,所述资源清单的文件格式为json文件;进行服务间共享依赖的注册和微服务本身的注册;加载资源地址表,按照用户的配置预下载所述资源列表中的资源,按照加载顺序串行执行;在所述资源清单的基础上建立通信协议,根据所述通信协议进行主子服务和子子服务之间的通信。2.根据权利要求1所述的基于资源清单协议的微前端架构实现方法,其特征在于:所述进行服务间共享依赖的注册具体为按照所述资源清单的格式将各个微服务依赖的资源记在一个共享清单文件内,以使加载器按需加载所述资源;所述进行微服务本身的注册具体为通过在微服务端配置禁掉json文件的缓存,保证主应用每次都能拿到json文件的最新内容。3.根据权利要求1所述的基于资源清单协议的微前端架构实现方法,其特征在于,所述生成资源清单具体包括:在webpack的hooks.emit.tapAsync阶段,通过编译上下文暴露的属性和方法,获取当前系统的所有chunk、入口chunk的信息和每个chunk的依赖列表;根据列表项在列表的顺序确定依赖项的加载顺序;对所有chunk和入口chunk取差集,得到异步chunk列表;对入口chunk间的依赖列表取交集结合传入的排除项,得到需排除的chunk,按照协议生成所述资源清单,所述资源清单保存在输出目录的根目录下。4.根据权利要求1所述的基于资源清单协议的微前端架构实现方法,其特征在于,所述在所述资源清单的基础上建立通信协议,根据所述通信协议进行主子服务和子子服务之间的通信包括:通过主应用构建消息总线,通过所述消息总线初始化触发器;所述消息总线的实例通过每个微服务的初始化生命周期函数传递进来,每个微服务可使用所述消息总线的实例进行消息的订阅和发布。5.根据权利要求4所述的基于资源清单协议的微前端架构实现方法,其特征在于,所述在所述资源清单的基础上建立通信协议,根据所述通信协议进行主子服务和子子服务之间的通信还包括:在所述消息要发送到子应用时,将事件命名为目前子应用的在清单中的服务名;在所述消息要发送到主应用时,将事件命名为main;在所述消息要进行广播发送时,将事件命名为*。6.一种基于资源清单协议的微前端架构实现装置,其特征在于,包括:资源清单生...

【专利技术属性】
技术研发人员:张吉踉黄景平陈守喆马鹏程段江南夏勇
申请(专利权)人:天翼云科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1