【技术实现步骤摘要】
一种渐进迁移遗留项目的微前端方法
[0001]本专利技术涉及web前端开发
,尤其涉及一种渐进迁移遗留项目的微前端方法。
技术介绍
[0002]通常同一域名下仅部署一个前端项目。当维护大型或项目生命周期较长的项目时,通常有以下几种方式拆分功能模块:
[0003](1)、公共的部分抽象为新的仓库打包为NPM模块提供业务无关的依赖。
[0004](2)、以全新的设计当成独立的项目开发使用子路径/子域名部署新的项目或者界面模块。
[0005](3)、使用iframe在页面局部视图单独加载运行一个新的应用。
[0006]常用的方式存在以下不足与缺陷:
[0007]抽象公用模块使用多仓库进行开发虽然能划分边界迭代新功能,但开发心智负担较高,调试过程繁琐,且需要额外的成本管理版本与依赖以及开发发布流程。
[0008]子域名/子路径单独运行一般是能单独运行的业务,范围有限。
[0009]遗留项目的历史包裹一般比较严重,维护成本较高,且部署方案涉及历史业务,诸如客户端内嵌页面、外部引用的静态资源、三方服务的回调逻辑等,一次性全量替换实现的成本过高。
[0010]因此,现有技术存在缺陷,需要改进。
技术实现思路
[0011]本专利技术要解决的技术问题是:提供一种渐进迁移遗留项目的微前端方法,以解决
技术介绍
所提到的问题。
[0012]本专利技术的技术方案如下:提供一种渐进迁移遗留项目的微前端方法,包括以下步骤。
[0013]S1:在遗留 ...
【技术保护点】
【技术特征摘要】
1.一种渐进迁移遗留项目的微前端方法,其特征在于,包括以下步骤:S1:在遗留项目中将构建结果的模块类型修改为UMD或IIFE;遗留项目的构建结果带有的index.html作为新应用的入口;S2:以monorepo作为仓库结构创建新项目;S3:在新项目的仓库中创建壳应用,调整其dev
‑
server以支持联合开发;所述壳项目为替换某个遗留项目入口的项目,其带有加载其他应用以及处理应用间通讯的逻辑代码的html文件;S4:按照以下步骤变更部署结构以支持后续模块引入;S41:创建的壳应用混入遗留项目的部署目录中;S42:按照“Web路径与部署路径的映射”修改nginx的配置将入口应用变更为壳应用;S43:按照“Web路径与部署路径的映射”修改遗留项目构建输出的入口文件名,以供壳应用加载;S5:在新项目的仓库中创建子应用项目,子应用项目均以子路径部署作为目标,预分配一个路由path;该path为代表完整页面的路由或者局部视图的路由;子应用项目指以模块化构建工具创建的带有局部视图的项目,可以独立运行完成某项业务功能;子应用项目的构建结果带有index.html文件且能单独运行,但最终只以一个局部视图展现而不是页面;S6:子应用项目部署至单独的目录,由nginx的alias命令路由在S5中分配的path;S7:新应用在需要子应用项目的时候由壳应用通过分配的子路径加载并实例化子应用项目。2.根据权利要求1所述的一种渐进迁移遗留项目的微前端方法,其特征在于,重复步骤S5
‑
S7,实现后续的渐进替换遗留项目。3.根据权利要求1所述的一种渐进迁移遗留项目的微前端方法,其特征在于,所述壳应用的特征包括:1)、实例化事件总线服务,即一个简易的事件发布订阅服务;2)、通过fetch API分别加载指定URL的子应用项目和遗留项目的index.html文件;3)、解析2)获得的内容,提取脚本标签的URL与样式标签的URL;4)、遍历URL并通过fetch API加载其内容,脚本标签的URL通过eval执行,样式标签的URL通过创建内联的style标签插入head元素;5)、执行完脚本后通过指定的全局命名空间访问其export的class实例化界面实例;全局命名空间的配置依据项目配置修改;6)、调用export的provideEventBus方法向子应用项目提供事件总线服务实例。4.根据权利要求1所述的一种渐进迁移遗留项目的微前端方法,其特征在于,在遗留项目中依据项目配置修改将构建结果的模块类型修改为UMD或IIFE;所述项目配置修改具体包括:[1]、所有项目均将构建的结果均改为IIFE或者UMD,并指定不冲突的全局命名空间;[2]、子应用项目需指定构建工具的publicPath字段为其部署...
【专利技术属性】
技术研发人员:王曦超,高斌,邹琼,周双全,
申请(专利权)人:深圳市瑞云科技股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。