[发明专利]一种基于资源清单协议的微前端架构实现方法和装置在审
申请号: | 202211702104.8 | 申请日: | 2022-12-29 |
公开(公告)号: | CN116048839A | 公开(公告)日: | 2023-05-02 |
发明(设计)人: | 张吉踉;黄景平;陈守喆;马鹏程;段江南;夏勇 | 申请(专利权)人: | 天翼云科技有限公司 |
主分类号: | G06F9/54 | 分类号: | G06F9/54 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 100010 北京市东城区青*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 资源 清单 协议 前端 架构 实现 方法 装置 | ||
本申请提供一种基于资源清单协议的微前端架构实现方法和装置,属于通信技术领域。该方法包括生成资源清单,资源清单为主页的入口chunk的依赖关系列表,资源清单的文件格式为json文件;进行服务间共享依赖的注册和微服务本身的注册;加载资源地址表,按照用户的配置预下载资源列表中的资源,按照加载顺序串行执行;在资源清单的基础上建立通信协议,根据通信协议进行主子服务和子子服务之间的通信。本申请提供一套完整的微前端架构的基础机制,能够低成本的对现有大型项目进行微前端改造,提高效率。
技术领域
本申请涉及通信技术领域,尤其涉及一种基于资源清单协议的微前端架构实现方法和装置。
背景技术
随着前后端分离开发模式的流行,浏览器功能的日益强大,前端在整个系统的建设中承担的职责越来越大,比例越来越重,一些系统在迭代的过程中不可避免的变成了一个巨型系统。为降低维护成本和提升可扩展性,服务端往往采用微服务的架构来应对,相应的成熟框架也比较多,而前端由于一些现实因素,至今没有一个比较成熟的方案。
理论上,前端微服务化(后简称微前端)是解决这个问题的不二之选,可缺乏统一成熟的落地框架。目前业界较出名的有阿里的qiankun,京东的microApp,还有基于webpack5的Module Federation实现的EMP,这些框架设计上各有利弊,由于前端的特殊性,这些框架要么只解决了其中的一部分问题,要么封装的太死,灵活性不够,要么定位上本就不是为微前端设计,系统整体不支持精细化的打包优化,且都缺乏比较大型的落地案例支撑,且直接用这些框架架构新项目可能比较合适,但是拆分现有的大型项目,如果不想对业务代码改动太多,实施起来就困难重重。
发明内容
本申请实施例提供一种基于资源清单协议的微前端架构实现方法,能够解决现有技术中微前端架构灵活性差、难以拆分适应不同业务的问题。
本申请实施例的第一方面,提供一种基于资源清单协议的微前端架构实现方法,该方法包括:
生成资源清单,所述资源清单为主页的入口chunk的依赖关系列表,所述资源清单的文件格式为json文件;
进行服务间共享依赖的注册和微服务本身的注册;
加载资源地址表,按照用户的配置预下载所述资源列表中的资源,按照加载顺序串行执行;
在所述资源清单的基础上建立通信协议,根据所述通信协议进行主子服务和子子服务之间的通信。
可选地,所述进行服务间共享依赖的注册具体为按照所述资源清单的格式将各个微服务依赖的资源记在一个共享清单文件内,以使加载器按需加载所述资源;
所述进行微服务本身的注册具体为通过在微服务端配置禁掉json文件的缓存,保证主应用每次都能拿到json文件的最新内容。
可选地,所述生成资源清单具体包括:
在webpack的hooks.emit.tapAsync阶段,通过编译上下文暴露的属性和方法,获取当前系统的所有chunk、入口chunk的信息和每个chunk的依赖列表;
根据列表项在列表的顺序确定依赖项的加载顺序;
对所有chunk和入口chunk取差集,得到异步chunk列表;
对入口chunk间的依赖列表取交集结合传入的排除项,得到需排除的chunk,按照协议生成所述资源清单,所述资源清单保存在输出目录的根目录下。
可选地,所述在所述资源清单的基础上建立通信协议,根据所述通信协议进行主子服务和子子服务之间的通信包括:
通过主应用构建消息总线,通过所述消息总线初始化触发器;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于天翼云科技有限公司,未经天翼云科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202211702104.8/2.html,转载请声明来源钻瓜专利网。