掌桥专利:专业的专利平台
掌桥专利
首页

组件库更新方法、装置、电子设备和可读存储介质

文献发布时间:2023-06-19 11:26:00


组件库更新方法、装置、电子设备和可读存储介质

技术领域

本发明实施例涉及计算机技术领域,尤其涉及一种组件库更新方法、装置、电子设备和可读存储介质。

背景技术

现有技术中,软件系统都会有通用的功能模块,对于前端系统来说是有通用的组件库,然而在所依赖的组件库进行大版本非兼容更新时,前端系统无法直接升级组件库,因为是非兼容,会导致系统不可用。

现有技术中使用新版本的组件库进行软件重构、对业务代码进行修改,满足新版本的使用规则进行组件升级时,存在当系统较大较复杂时成本极高且不可重复使用,之后再次有大版本更新时有需要再测进行重构,还容易引入漏洞;且若采用官方提供的代码分析工具自动进行代码修改,再手动调整无法修改的部分,则存在成本较低虽低但还是需要手动有改动的问题,且若官方的代码分析工具不够强大,可能会把业务代码改的一团糟,也还是存在会引入漏洞的问题。

发明内容

本发明实施例提供一种组件库更新方法、装置、电子设备和可读存储介质,以解决现有技术中组件库进行大版本非兼容更新时的系统兼容的问题。

为了解决上述技术问题,本发明是这样实现的:

第一方面,本发明实施例提供了一种组件库更新方法,应用于由多个子应用构成的微前端系统,所述方法包括:

新建第二子应用,所述第二子应用安装有第二版本的第一组件库;所述第一组件库中包括多个组件;

导出所述第二版本的第一组件库至所述第二子应用的第一目标路径;

根据所述第一目标路径,从所述第二版本的第一组件库内获取至少一个目标组件,导出所述目标组件至所述多个子应用中的目标子应用。

可选的,所述目标子应用为第一子应用,所述第一子应用安装有第一版本的第一组件库。

可选的,所述目标子应用为第三子应用,所述第三子应用未安装所述第一组件库。

可选的,还包括:

从所述第一子应用将第一版本的第一组件库导出至所述第一子应用的第二目标路径;

若所述第二子应用中需要使用到第一版本的组件,所述方法还包括:

根据所述第二目标路径,从所述第一版本的第一组件库内获取至少一个目标组件,导入所述目标组件至所述第二子应用中使用。

第二方面,本发明实施例还提供了一种组件库更新装置,包括:

组件库模块,用于新建第二子应用,所述第二子应用安装有第二版本的第一组件库;所述第一组件库中包括多个组件;

执行模块,用于导出所述第二版本的第一组件库至所述第二子应用的第一目标路径;

导出模块,用于根据所述第一目标路径,从所述第二版本的第一组件库内获取至少一个目标组件,导出所述目标组件至多个子应用中的目标子应用。

可选的,所述目标子应用为第一子应用,所述第一子应用安装有第一版本的第一组件库。

可选的,所述目标子应用为第三子应用,所述第三子应用未安装所述第一组件库。

可选的,还包括导入模块;

所述执行模块还用于从所述第一子应用中将第一版本的第一组件库导出至所述第一子应用的第二目标路径;

若所述第二子应用中需要使用到第一版本的组件,所述导入模块用于根据所述第二目标路径,从所述第一版本的第一组件库内获取至少一个目标组件,导入所述目标组件至所述第二子应用中。

第三方面,本发明实施例还提供了一种电子设备,包括:处理器、存储器及存储在所述存储器上并可在所述处理器上运行的程序,所述程序被所述处理器执行时实现如第一方面任一项所述的组件库更新方法的步骤。

第四方面,本发明实施例还提供了一种可读存储介质,所述可读存储介质上存储有程序,所述程序被处理器执行时实现如第一方面任一项所述的组件库更新方法的步骤。

本发明实施例中,微前端系统包括多个子应用,通过新建第二子应用,并将第二版本的第一组件库安装至第二子应用中,导出第二版本的第一组件库至第一目标路径,依据第一目标路径从第二版本的第一组件库内获取至少一个目标组件,导出目标组件至目标子应用中,实现微前端系统中包含第一组件库的组件的子应用的组件库更新至第二版本;依据本方案实现的组件库更新方法,微前端系统能够完全兼容旧版本代码,实现同一微前端系统的第一组件库的多版本共存,能够在不需要对旧代码进行任何修改的前提下实现组件库的升级,且版本升级前后不会引入漏洞,开发周期短,实时成本低,组件库升级快速。

附图说明

通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:

图1为本发明实施例提供的组件库更新方法的流程示意图之一;

图2为本发明实施例提供的组件库更新方法的流程示意图之二;

图3为本发明实施例提供的组件库更新装置的结构示意图之一;

图4为本发明实施例提供的电子设备的结构示意图之一。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

请参考图1,图1为本发明实施例提供的组件库更新方法的流程示意图之一;

本发明实施例提供了一种组件库更新方法,应用于由多个子应用构成的微前端系统,所述方法包括:

步骤11:新建第二子应用,所述第二子应用安装有第二版本的第一组件库;所述第一组件库中包括多个组件;

步骤12:导出所述第二版本的第一组件库至所述第二子应用的第一目标路径;

步骤13:根据所述第一目标路径,从所述第二版本的第一组件库内获取至少一个目标组件,导出所述目标组件至所述多个子应用中的目标子应用。

本发明实施例中,微前端系统包括多个子应用,通过新建第二子应用,并将第二版本的第一组件库安装至第二子应用中,导出第二版本的第一组件库至第一目标路径,依据第一目标路径从第二版本的第一组件库内获取至少一个目标组件,导出目标组件至目标子应用中,实现微前端系统中包含第一组件库的组件的子应用的组件库更新至第二版本;依据本方案实现的组件库更新方法,微前端系统能够完全兼容旧版本代码,实现同一微前端系统的第一组件库的多版本共存,能够在不需要对旧代码进行任何修改的前提下实现组件库的升级,且版本升级前后不会引入漏洞,开发周期短,实时成本低,组件库升级快速。

在本发明的一些实施例中,可选的,每一子应用安装有多个组件库。

在本发明的一些实施例中,可选的,非微前端系统架构的软件可以转换成微前端系统架构,再依据本方法实现组件库的更新。

本发明实施例中,微前端系统中的需要升级的组件库包括多个,通过获取组件库的目标路径获取目标组件,导出目标组件至目标子应用实现该目标子应用的第二组件库的版本升级。

在本发明的一些实施例中,可选的,所述微前端系统中存在多个版本的第一组件库,每一目标子应用可根据安装有不同版本的组件库的第二子应用导出的目标路径获取对应版本的组件并导入,实现特定子应用的特定版本的组件升级。

在本发明的一些实施例中,可选的,所述目标子应用为第一子应用,所述第一子应用安装有第一版本的第一组件库。

本发明实施例中,目标子应用安装有第一版本的第一组件库的第一子应用时,第一子应用能通过从第二版本的第一组件库内获取目标组件并导入实现第二版本组件的功能使用;该第一子应用需要使用第一版本的第一组件库中的组件时,调用自身组件库即可实现,需要使用第二版本的第一组件库中的组件时,通过从安装有第二版本的第一组件库的第二子应用导入目标组件或目标组件包实现;实现了同一子应用上的多版本组件的完全兼容,也将不同版本的组件库放在不同子应用中进行隔离,在无需修改任何第一版本业务代码的前提下实现第一版本至第二版本的无缝切换;版本升级前后不会引入漏洞,开发周期短,实时成本低,组件库升级快速。

在本发明的一些实施例中,可选的,所述目标子应用为第三子应用,所述第三子应用未安装所述第一版本的第一组件库。

本发明实施例中,目标子应用为没有安装第一组件库的第三子应用时,可通过第一目标路径直接从第二版本的第一组件库内获取目标组件并导入,实现第二版本的组件在第三子应用上的应用。

在本发明的一些实施例中,可选的,还包括:

从所述第一子应用中将第一版本的第一组件库导出至所述第一子应用的第二目标路径;

若所述第二子应用中需要使用到第一版本的组件,所述方法还包括:

根据所述第二目标路径,从所述第一版本的第一组件库内获取至少一个目标组件,导入所述目标组件至所述第二子应用中使用。

具体地,当把旧版本的组件库安装到新创建的第二子应用中时,可通过获取第一子应用的第二目标路径导入第二子应用中实现第二子应用中新版本组件的使用,其中,第一子应用安装有新版本的组件库。此时,若该第二子应用需使用旧版本的组件,则调用自身安装的旧版本的组件库中的组件即可。

本发明实施例中,目标子应用安装有第一版本的第一组件库的第一子应用时,第二子应用既能通过从第一版本的第一组件库内获取目标组件并导入实现第一版本组件的功能使用;该第二子应用需要使用第二版本的第一组件库中的组件时,调用自身组件库即可实现,需要使用第一版本的第一组件库中的组件时,通过从安装有第一版本的第一组件库的第一子应用导入目标组件或目标组件包实现;实现了同一子应用上的多版本组件的完全兼容,也将不同版本的组件库放在不同子应用中进行隔离,在无需修改任何第一版本业务代码的前提下实现第一版本至第二版本的无缝切换;版本升级前后不会引入漏洞,开发周期短,实时成本低,组件库升级快速。

在本发明的一些实施例中,可选的,所述根据所述第一目标路径,从所述第二版本的第一组件库内获取至少一个目标组件,导入所述目标组件至所述多个子应用中的目标子应用包括:

根据所述第一目标路径,从所述第二版本的第一组件库内获取多个目标组件,形成目标组件包,导入所述目标组件包至所述多个子应用中的目标子应用。

本发明实施例中,微前端系统的多个子应用之间可以互相引入导出的组件包,目标子应用通过第二子应用分享的第一目标路径,从第二版本的第一组件库内获取多个组件,形成目标组件包,导入所述目标组件包,实现该目标子应用的组件版本更新,不需要对旧代码进行任何修改且版本升级前后不会引入漏洞,开发周期短,实时成本低,组件库升级快速。

具体地,请参考图2,图2为本发明实施例提供的组件库更新方法的流程示意图之二;第一组件库为antd组件库(一套企业级交互设计语言和react组件库,全称AntDesign),第二子应用为antdv4-app子应用,其上安装有Ant Design组件库的一子应用,所述Ant Design组件库的版本包括v1-v4版本,记antd v4版本为第二版本的第一组件库211,antd v3版本为第一版本的第一组件库221。

其中微前端系统20,由多个子应用组成,包括第二子应用21和某一目标子应用22;

第二子应用21上安装有第二版本的第一组件库211;目标子应用22上安装有第二版本的第一组件库221。

各子应用之间可以互相引入导出的组件包。

当第二子应用21需调用第一版本的第一组件时,执行步骤202:从所述第一子应用中将第一版本的第一组件库导出至所述第一子应用的第二目标路径;根据所述第二目标路径,从所述第一版本的第一组件库内获取至少一个目标组件,导入所述目标组件至所述第二子应用中使用。

当第一子应用22需调用第二版本的第一组件时,执行步骤201:从所述第二子应用中导出所述第二版本的第一组件库至所述第二子应用的第一目标路径;根据所述第一目标路径,从所述第二版本的第一组件库内获取至少一个目标组件,导出所述目标组件至所述第一子应用中使用。

本发明实施例中,在使用新版本时直接导入antdv4-app导出的v4版本的AntDesign并直接使用,对于业务子应用原有使用v3版本Ant Design的代码来说不需要进行任何修改,依旧使用本身原有的antdv3版本,最终实现组件库v3 v4多版本共存,且在有下次v5版本的非兼容性升级时可使用同样的方式实现v3 v4 v5多版本共存。

在本发明的一些实施例中,还可以先卸载第二子应用上安装的旧版本的组件库,再将新版本的组件库安装至该第二子应用中,此时,通过导入从安装有旧版本组件库的其他子应用中获取旧版本的目标组件(即对所有使用旧版本组件的引用修改引用路径)实现该第二子应用中旧版本组件的使用。

请参考图3,图3为本发明实施例提供的组件库更新装置的结构示意图之一;本发明实施例还提供了一种组件库更新装置,包括:

组件库模块31,用于新建第二子应用,所述第二子应用安装有第二版本的第一组件库;所述第一组件库中包括多个组件;

执行模块32,用于导出所述第二版本的第一组件库至所述第二子应用的第一目标路径;

导出模块33,用于根据所述第一目标路径,从所述第二版本的第一组件库内获取至少一个目标组件,导出所述目标组件至多个子应用中的目标子应用。

本发明实施例中,组件库更新装置通过新建第二子应用,并将第二版本的第一组件库安装至第二子应用中,导出第二版本的第一组件库至第一目标路径,依据第一目标路径从第二版本的第一组件库内获取至少一个目标组件,导出目标组件至目标子应用中,实现微前端系统中包含第一组件库的组件的子应用的组件库更新至第二版本;依据本方案实现的组件库更新方法,微前端系统能够完全兼容旧版本代码,实现同一微前端系统的第一组件库的多版本共存,能够在不需要对旧代码进行任何修改的前提下实现组件库的升级,且版本升级前后不会引入漏洞,开发周期短,实时成本低,组件库升级快速。

在本发明的一些实施例中,可选的,所述目标子应用为第一子应用,所述第一子应用安装有第一版本的第一组件库。

本发明实施例中,目标子应用安装有第一版本的第一组件库的第一子应用时,第一子应用能通过从第二版本的第一组件库内获取目标组件并导入实现第二版本组件的功能使用;该第一子应用需要使用第一版本的第一组件库中的组件时,调用自身组件库即可实现,需要使用第二版本的第一组件库中的组件时,通过从安装有第二版本的第一组件库的第二子应用导入目标组件或目标组件包实现;实现了同一子应用上的多版本组件的完全兼容,也将不同版本的组件库放在不同子应用中进行隔离,在无需修改任何第一版本业务代码的前提下实现第一版本至第二版本的无缝切换;版本升级前后不会引入漏洞,开发周期短,实时成本低,组件库升级快速。

在本发明的一些实施例中,可选的,所述目标子应用为第三子应用,所述第三子应用未安装所述第一版本的第一组件库。

本发明实施例中,目标子应用为没有安装第一组件库的第三子应用时,可通过第一目标路径直接从第二版本的第一组件库内获取目标组件并导入,实现第二版本的组件在第三子应用上的应用。

在本发明的一些实施例中,可选的,还包括导入模块34;

所述执行模块32还用于从所述第一子应用中将第一版本的第一组件库导出至所述第一子应用的第二目标路径;

若所述第二子应用中需要使用到第一版本的组件,所述导入模块34用于根据所述第二目标路径,从所述第一版本的第一组件库内获取至少一个目标组件,导入所述目标组件至所述第二子应用中。

具体地,当把旧版本的组件库安装到新创建的第二子应用中时,可通过获取第一子应用的第二目标路径导入第二子应用中实现第二子应用中新版本组件的使用,其中,第一子应用安装有新版本的组件库。此时,若该第二子应用需使用旧版本的组件,则调用自身安装的旧版本的组件库中的组件即可。本发明实施例中,组件库更新装置中,目标子应用安装有第一版本的第一组件库的第一子应用时,第二子应用既能通过从第一版本的第一组件库内获取目标组件并导入实现第一版本组件的功能使用;该第二子应用需要使用第二版本的第一组件库中的组件时,调用自身组件库即可实现,需要使用第一版本的第一组件库中的组件时,通过从安装有第一版本的第一组件库的第一子应用导入目标组件或目标组件包实现;实现了同一子应用上的多版本组件的完全兼容,也将不同版本的组件库放在不同子应用中进行隔离,在无需修改任何第一版本业务代码的前提下实现第一版本至第二版本的无缝切换;版本升级前后不会引入漏洞,开发周期短,实时成本低,组件库升级快速。

本发明还提供一种电子设备,请参考图4,图4为本发明实施例提供的电子设备的结构示意图之一。

该电子设备40包括:处理器41、存储器42及存储在所述存储器42上并可在所述处理器41上运行的程序,所述程序被所述处理器41执行时实现如实现上述任一所述的组件库更新方法的的实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。

本发明实施例还提供一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一所述的组件库更新方法的实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。

其中,所述的计算机可读存储介质,如只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等。

上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本发明的保护之内。

相关技术
  • 组件库更新方法、装置、电子设备和可读存储介质
  • 一种规则库更新方法、装置、电子设备及可读存储介质
技术分类

06120112923507