[发明专利]一种基于资源清单协议的微前端架构实现方法和装置在审
申请号: | 202211702104.8 | 申请日: | 2022-12-29 |
公开(公告)号: | CN116048839A | 公开(公告)日: | 2023-05-02 |
发明(设计)人: | 张吉踉;黄景平;陈守喆;马鹏程;段江南;夏勇 | 申请(专利权)人: | 天翼云科技有限公司 |
主分类号: | G06F9/54 | 分类号: | G06F9/54 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 100010 北京市东城区青*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 资源 清单 协议 前端 架构 实现 方法 装置 | ||
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.一种基于资源清单协议的微前端架构实现装置,其特征在于,包括:
资源清单生成模块,用于生成资源清单,所述资源清单为主页的入口chunk的依赖关系列表,所述资源清单的文件格式为json文件;
服务注册模块,用于进行服务间共享依赖的注册和微服务本身的注册;
资源地址表加载模块,用于加载资源地址表,按照用户的配置预下载所述资源列表中的资源,按照加载顺序串行执行;
通信执行模块,用于在所述资源清单的基础上建立通信协议,根据所述通信协议进行主子服务和子子服务之间的通信。
7.根据权利要求6所述的基于资源清单协议的微前端架构实现装置,其特征在于,所述服务注册模块包括:
服务间共享依赖注册子模块,用于按照所述资源清单的格式将各个微服务依赖的资源记在一个共享清单文件内,以使加载器按需加载所述资源;
微服务本身注册子模块,用于通过在微服务端配置禁掉json文件的缓存,保证主应用每次都能拿到json文件的最新内容。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于天翼云科技有限公司,未经天翼云科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202211702104.8/1.html,转载请声明来源钻瓜专利网。