一种避免主应用打包子应用测试代码上线的方法和装置制造方法及图纸

技术编号:33286207 阅读:13 留言:0更新日期:2022-04-30 23:54
本公开涉及前端开发技术领域,提供了一种避免主应用打包子应用测试代码上线的方法和装置。该方法包括:基于前端微服务框架,获取子应用的内容,并将内容注入主应用中,内容包括子应用的线上版本代码;通过主应用对应的路由监听地址栏变化事件,在路由变化时匹配到子应用,并利用主应用的容器对子应用的内容进行渲染,使子应用保持线上环境代码状态。本公开通过将线上版本代码的子应用的内容注入到主应用中,再通过监听路由变化渲染图模子应用中的内容,从而实现将子应用的项目放入主应用项目中,使子应用的代码永远保持线上环境代码状态,避免了因两个应用项目处于不同阶段导致上线打包时出现测试代码的问题。线打包时出现测试代码的问题。线打包时出现测试代码的问题。

【技术实现步骤摘要】
一种避免主应用打包子应用测试代码上线的方法和装置


[0001]本公开涉及前端开发
,尤其涉及一种避免主应用打包子应用测试代码上线的方法和装置。

技术介绍

[0002]当前很多大型的应用为了方便开发会拆分成很多子应用,这些子应用可以独立开发和部署,目前有很多引入子应用的方式,例如,通过npm包的方式将子应用项目引用到主应用建模项目中。但是这种开发方式会出现如下问题:如果子应用处于测试阶段,子应用非生产环境代码,此时主应用建模若打包生产上线,很容易将子应用测试阶段代码一同上线,使线上出现严重问题。针对这一技术问题,当前方案是上线之前有主应用和子应用的双方项目人员进行沟通,确保版本没有问题才可以上线。这种方式增加了沟通成本,并且有沟通不到位的风险。
[0003]另外,针对该技术问题,现有技术还有采用iframe方式引入,但是此方法有很多缺陷,如阻塞页面加载、高度需明确、渲染区域受限等等。或者,实际中也有将子应用中的代码复制到主应用项目中,但是每次子应用代码有新的改动,都要手动同步到建模中,代码维护成本太大,造成人力资源浪费。
[0004]因此,需要克服现有技术中将子应用引入到主应用中进行打包上线时,容易将子应用测试阶段代码一同上线,导致上线出现严重失误的问题。

技术实现思路

[0005]有鉴于此,本公开实施例提供了一种避免主应用打包子应用测试代码上线的方法和装置,以解决现有技术中将子应用引入到主应用中进行打包上线时,容易将子应用测试阶段代码一同上线,导致上线出现严重失误的问题。
>[0006]本公开实施例的第一方面,提供了一种避免主应用打包子应用测试代码上线的方法,包括:基于前端微服务框架,获取子应用的内容,并将内容注入主应用中,内容包括子应用的线上版本代码;通过主应用对应的路由监听地址栏变化事件,在路由变化时匹配到子应用,并利用主应用的容器对子应用的内容进行渲染,使子应用保持线上环境代码状态。
[0007]本公开实施例的第二方面,提供了一种避免主应用打包子应用测试代码上线的装置,包括:注入模块,被配置为基于前端微服务框架,获取子应用的内容,并将内容注入主应用中,内容包括子应用的线上版本代码;加载模块,被配置为通过主应用对应的路由监听地址栏变化事件,在路由变化时匹配到子应用,并利用主应用的容器对子应用的内容进行渲染,使子应用保持线上环境代码状态。
[0008]本公开实施例的第三方面,提供了一种电子设备,包括存储器、处理器以及存储在存储器中并且可以在处理器上运行的计算机程序,该处理器执行计算机程序时实现上述方法的步骤。
[0009]本公开实施例的第四方面,提供了一种计算机可读存储介质,该计算机可读存储
介质存储有计算机程序,该计算机程序被处理器执行时实现上述方法的步骤。
[0010]本公开实施例与现有技术相比存在的有益效果是:通过将线上版本代码的子应用的内容注入到主应用中,再通过监听路由变化渲染图模子应用中的内容,从而实现将子应用的项目放入主应用项目中,使子应用的代码永远保持线上环境代码状态,避免了因两个应用项目处于不同阶段导致上线打包时出现测试代码的问题。
附图说明
[0011]为了更清楚地说明本公开实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
[0012]图1是本公开实施例的应用场景的场景示意图;
[0013]图2是本公开实施例提供的一种避免主应用打包子应用测试代码上线的方法的流程示意图;
[0014]图3是本公开实施例提供的另一种避免主应用打包子应用测试代码上线的方法的流程示意图;
[0015]图4是本公开实施例提供的一种避免主应用打包子应用测试代码上线的装置的结构示意图;
[0016]图5是本公开实施例提供的一种电子设备的结构示意图。
具体实施方式
[0017]以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本公开实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本公开。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本公开的描述。
[0018]下面将结合附图详细说明根据本公开实施例的一种避免主应用打包子应用测试代码上线的方法和装置。
[0019]图1是本公开实施例的应用场景的场景示意图。该应用场景可以包括客户端1、网关2、应用管理服务器3以及主应用4和子应用5。
[0020]客户端1可以是硬件,也可以是软件。当客户端1为硬件时,其可以是具有显示屏且支持与应用管理服务器3通信的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等;当客户端1为软件时,其可以安装在如上的电子设备中。客户端1可以实现为多个软件或软件模块,也可以实现为单个软件或软件模块,本公开实施例对此不作限制。进一步地,客户端1上可以安装有各种应用,例如浏览器应用等。
[0021]网关2又称网间连接器、协议转换器。网关在传输层上以实现网络互连,是最复杂的网络互连设备,仅用于两个高层协议不同的网络互连。在本公开实施例中,网关可以为客户端1访问,应用管理服务器3的网络路由器。
[0022]应用管理服务器3可以是提供各种服务的服务器,例如,对与其建立通信连接的客户端1发送的请求进行接收的后台服务器,该后台服务器可以对客户端1发送的请求进行接
收和分析等处理,并生成处理结果。应用管理服务器3可以是一台服务器,也可以是由若干台服务器组成的服务器集群,或者还可以是一个云计算服务中心,本公开实施例对此不作限制。
[0023]需要说明的是,应用管理服务器3可以是硬件,也可以是软件。当应用管理服务器3为硬件时,其可以是为客户端1提供各种服务的各种电子设备。当应用管理服务器3软件时,其可以是为客户端1提供各种服务的多个软件或软件模块,也可以是为客户端1提供各种服务的单个软件或软件模块,本公开实施例对此不作限制。
[0024]主应用可以是任何类型的系统建模项目,例如,主应用可以为能源系统中的CIM建模项目,子应用则是从能源系统中添加和分离出来的图模项目,单独作为子应用去独立开发的。具体地,可以通过NPM(Node Package Manager,是一个NodeJS包管理和分发工具)的方式引用到主项目CIM建模项目中,但实际使用发现,如果子应用图模项目处于测试阶段,子应用图模项目非生产环境代码,此时主应用CIM建模项目若打包生产上线,则会使上线出现严重的问题。在本公开实施例中,采用微服务架构,将子应用图模项目线上版本代码放入主应用CIM建模项目中,从而使主应用CIM建模项目每次构建打包时不用根据子应用图模项目版本去重新拉取代码,避免了上线出现问题的风险。
[0025]需要说本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种避免主应用打包子应用测试代码上线的方法,其特征在于,包括:基于前端微服务框架,获取子应用的内容,并将所述内容注入主应用中,所述内容包括所述子应用的线上版本代码;通过所述主应用对应的路由监听地址栏变化事件,在路由变化时匹配到子应用,并利用所述主应用的容器对所述子应用的内容进行渲染,使所述子应用保持线上环境代码状态。2.根据权利要求1所述的方法,其特征在于,所述获取子应用的内容,并将所述内容注入主应用中,包括:基于NPM在主应用中提供加载子应用的配置信息;基于所述配置信息加载对应的子应用,并通过自定义的方式对所述子应用HTML入口进行解析,获取到所述子应用的超文本标记语言、层叠样式表和JavaScript脚本语言;将所述子应用的超文本标记语言、层叠样式表和JavaScript脚本语言注入到主应用的容器中。3.根据权利要求2所述的方法,其特征在于,所述配置信息至少包括以下一种内容:所述子应用的线上地址,应用名称、入口文件、路径、容器名。4.根据权利要求2所述的方法,其特征在于,所述利用所述主应用的容器对所述子应用的内容进行渲染,包括:基于代理的方式产生用于执行所述子应用的代理窗口,并利用所述代理窗口来执行所述子应用中所有的层叠样式表标签。5.根据权利要求2所述的方法,其特征在于,所述利用所述主应用的容器对所述子应...

【专利技术属性】
技术研发人员:蔡雪飞刘鹏程
申请(专利权)人:新奥数能科技有限公司
类型:发明
国别省市:

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

1