CN115048082A - 微前端系统构建方法、装置、服务器及可读存储介质 - Google Patents
微前端系统构建方法、装置、服务器及可读存储介质 Download PDFInfo
- Publication number
- CN115048082A CN115048082A CN202210689840.8A CN202210689840A CN115048082A CN 115048082 A CN115048082 A CN 115048082A CN 202210689840 A CN202210689840 A CN 202210689840A CN 115048082 A CN115048082 A CN 115048082A
- Authority
- CN
- China
- Prior art keywords
- code
- target micro
- service component
- micro
- end code
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
- G06F8/63—Image based installation; Cloning; Build to order
Abstract
本申请涉及一种微前端系统构建方法、装置、计算机设备及存储介质。该方法包括:从业务组件库中获取目标微前端代码中公共业务最新的业务组件,并根据目标微前端代码和目标微前端代码中公共业务最新的业务组件,构建目标微前端代码对应的目标微前端系统。在公共业务的业务组件需要修改或者更新的情况下,采用上述方法可以避免开发人员对微前端系统的代码进行修改并重新调试的过程,可以直接从业务组件库中获取已修改或者已更新的业务组件来生成微前端代码对应的微前端系统,从而能够减小微前端系统的修改或更新操作的耗时。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及一种微前端系统构建方法、装置、服务器及可读存储介质。
背景技术
在微前端项目中,微前端系统的数量较为庞大。通常,不同微前端系统的重复内容也较多,不同微前端系统的公共组件会被存放至基础组件库中,在不同微前端系统开发时直接从基础组件库中调用公共组件,以减少代码开发。
相关技术中,如果不同微前端系统中的公共组件需要修改或更新时,开发人员需要对不同微前端系统的代码分别进行修改,然后对修改后的代码进行重新调试以使修改后的微前端系统顺畅运行。但是,这样会导致微前端系统的修改或更新操作的耗时较长。
发明内容
基于此,有必要针对上述技术问题,提供一种微前端系统构建方法、装置、服务器及可读存储介质。
第一方面,本申请提供了一种微前端系统构建方法,该方法包括:
从业务组件库中获取目标微前端代码的业务组件;目标微前端代码为所有接入业务组件库的微前端系统中任一微前端系统的代码;业务组件库中包括所有公共业务最新的业务组件;
根据目标微前端代码和目标微前端代码的业务组件,构建目标微前端代码对应的目标微前端系统。
本申请实施例提供的微前端系统构建方法可以从业务组件库中获取目标微前端代码中公共业务最新的业务组件,并根据目标微前端代码和目标微前端代码中公共业务最新的业务组件,构建目标微前端代码对应的目标微前端系统;在公共业务的业务组件需要修改或者更新的情况下,该方法可以避免开发人员对微前端系统的代码进行修改并重新调试的过程,可以直接从业务组件库中获取已修改或者已更新的业务组件来生成微前端代码对应的微前端系统,从而能够减小微前端系统的修改或更新操作的耗时,并且还可以快速、及时、对微前端系统进行修改或更新,另外,该方法不需要对修改后的代码进行重新调试,还可以降低微前端系统修改或更新的复杂度。
在其中一个实施例中,根据目标微前端代码和目标微前端代码的业务组件,构建目标微前端代码对应的目标微前端系统,包括:
根据目标微前端代码和目标微前端代码的业务组件,构建镜像文件;
根据镜像文件构建目标微前端代码对应的目标微前端系统。
本申请实施例提供的微前端系统构建方法可以根据获取到的目标微前端代码的业务组件与目标微前端代码构建镜像文件,然后根据镜像文件构建目标微前端代码对应的目标微前端系统;该方法可以通过已修改后的目标微前端代码的业务组件与目标微前端代码构建对应的镜像文件,不需要对原始业务组件进行修改,能够减少已修改的业务组件与微前端代码融合后重新调试的流程,从而能够节省调试所需的人力资源和人力成本。
在其中一个实施例中,根据镜像文件构建目标微前端代码对应的目标微前端系统之前,方法还包括:
将镜像文件存储至镜像仓库中;
则根据镜像文件构建目标微前端代码对应的目标微前端系统,包括:
从镜像仓库中获取镜像文件;
将镜像文件发布生成目标微前端系统。
本申请实施例提供的微前端系统构建方法可以将镜像文件存储至镜像仓库中,在需要对部分微前端系统进行修改或更新时,仅对这部分微前端系统的镜像文件进行更新,不需要对其它的镜像文件进行更新,从而能够减少构建前端系统的代码开发量,并且还可以提高前端系统的构建速度。
在其中一个实施例中,根据目标微前端代码和目标微前端代码的业务组件,构建镜像文件,包括:
对目标微前端代码和目标微前端代码的业务组件进行编译并打包,得到前端包;
将前端包和目标微前端代码所属的开发环境文件进行打包,生成镜像文件。
本申请实施例提供的微前端系统构建方法可以对目标微前端代码和目标微前端代码的业务组件进行编译并打包得到前端包,将前端包和目标微前端代码所属的开发环境文件进行打包生成镜像文件,在需要对部分微前端系统进行修改或更新时,仅对这部分微前端系统的镜像文件进行更新,不需要对其它的镜像文件进行更新,从而能够减少对代码进行重复开发。
在其中一个实施例中,在从业务组件库中获取目标微前端代码的业务组件之前,方法还包括:
从代码管理服务器中获取目标微前端代码;
对目标微前端代码进行代码扫描检查;
若目标微前端代码检查结果正确,则执行从业务组件库中获取目标微前端代码的业务组件的步骤。
本申请实施例提供的微前端系统构建方法可以从代码管理服务器中获取目标微前端代码,对目标微前端代码进行代码扫描检查,在目标微前端代码检查结果正确时,执行从业务组件库中获取目标微前端代码的业务组件的步骤;该方法可以对获取到的目标微前端代码进行代码扫描检查,以确保目标微前端代码的正确性,从而能够避免构建出非目标微前端系统。
在其中一个实施例中,业务组件库的构建过程包括:
获取更新后的业务组件代码;
基于更新后的业务组件代码生成最新的业务组件,并将最新的业务组件存储于业务组件库中。
本申请实施例提供的微前端系统构建方法可以获取更新后的业务组件代码,并基于更新后的业务组件代码生成最新的业务组件,并将最新的业务组件存储于业务组件库中;该方法可以仅更新业务组件,并将更新后的业务组件存储至业务组件库中,以便在构建微前端系统时,直接使用业务组件库中最新的业务组件与目标微前端代码构建目标微前端代码,该过程能够避免代码调试的过程,不需要开发人员具有代码调试的专业能力,从而能够降低开发人员的专业要求;同时,该方法只需对业务组件进行二次开发,不需要对所有接入业务组件库的微前端系统的代码做任何修改,就能够达到修改或更新微前端系统的目的,使得整个过程简单化;另外,该方法可以基于业务组件库,对接入业务组件库的所有微前端系统进行同步修改或更新,从而能够减少公共业务的业务组件的代码开发。
在其中一个实施例中,基于更新后的业务组件代码生成最新的业务组件,包括:
对更新后的业务组件代码进行代码扫描检查;
若更新后的业务组件代码检查结果正确,则对更新后的业务组件代码进行编译,得到最新的业务组件。
本申请实施例提供的微前端系统构建方法可以对更新后的业务组件代码进行代码扫描检查,在更新后的业务组件代码检查结果正确后,对更新后的业务组件代码进行编译得到最新的业务组件;该方法可以对更新后的业务组件代码进行代码扫描检查,以确保更新后的业务组件代码的正确性,从而能够避免构建出非目标业务组件。
第二方面,本申请提供了一种微前端系统构建装置,该装置包括:
业务组件获取模块,用于从业务组件库中获取目标微前端代码的业务组件;目标微前端代码为所有接入业务组件库的微前端系统中任一微前端系统的代码;业务组件库中包括所有公共业务最新的业务组件;
系统构建模块,用于根据目标微前端代码和目标微前端代码的业务组件,构建目标微前端代码对应的目标微前端系统。
第三方面,本申请提供了一种服务器,包括存储器和处理器,存储器存储有计算机程序,该处理器执行计算机程序时实现上述第一方面任一实施例中的方法的步骤。
第四方面,本申请提供了一种可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述第一方面任一实施例中的方法的步骤。
附图说明
图1为一个实施例中服务器的内部结构图;
图2为一个实施例中微前端系统构建方法的流程示意图;
图3为另一个实施例中根据目标微前端代码和目标微前端代码的业务组件构建目标微前端代码对应的目标微前端系统的方法流程示意图;
图4为另一个实施例中根据镜像文件构建目标微前端代码对应的目标微前端系统的方法流程示意图;
图5为另一个实施例中根据目标微前端代码和目标微前端代码的业务组件构建镜像文件的方法流程示意图;
图6为另一个实施例中对目标微前端代码进行代码扫描检查的方法流程示意图;
图7为另一个实施例中业务组件库的构建方法流程示意图;
图8为另一个实施例中基于更新后的业务组件代码生成最新的业务组件的方法流程示意图;
图9为一个实施例中微前端系统构建装置的结构框图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的微前端系统构建方法,可以适用于图1所示的服务器。可选的,系统构建服务器可以但不限于是各种个人计算机、笔记本电脑和云端,还可以用独立的服务器或者是多个服务器组成的服务器集群来实现,本申请实施例对系统构建服务器的具体形式不做限定。可选地,上述系统构建服务器可以为一种基于分布式操作系统(KubeSphere)的前端服务器。在本申请实施例中,上述系统构建服务器为持续集成服务器,如jenkins服务器。下述实施例中将具体介绍微前端系统构建方法的具体过程。
在微前端系统中通常会出现公共业务组件需要修改或者更新的情况,其中,公共业务组件修改或更新后会伴随着整个微前端系统的修改或更新,为了达到微前端系统的修改或更新的目的,通常需要对微前端系统的代码中对公共业务组件代码进行修改并测试构建修改或更新后的微前端系统,但是这样会导致微前端系统的修改或更新操作的耗时较长。基于此,本申请实施例提供了一种微前端系统构建方法以解决该问题,如图2所示为微前端系统构建方法的流程示意图,以该方法应用于图1中的系统构建服务器为例进行说明,包括以下步骤:
S100、从业务组件库中获取目标微前端代码的业务组件;目标微前端代码为所有接入业务组件库的微前端系统中任一微前端系统的代码;业务组件库中包括所有公共业务最新的业务组件。
具体地,上述目标微前端代码可以理解为目标微前端系统对应的框架代码,该目标微前端代码中包含一段或多段公共业务组件代码的调用信息。可选地,一段公共业务组件代码可以对应一个或多个公共业务组件。可选地,公共业务组件代码的调用信息可以为公共业务组件代码的标识、配置空间、名称等信息。可选地,目标微前端系统对应的框架代码中可以包括除公共业务组件之外的非公共业务组件代码。
其中,业务组件库可以存储在前端私有npm服务器中。因此,系统构建服务器可以向前端私有npm服务器发送业务组件获取请求,前端私有npm服务器响应业务组件获取请求从已存储的业务组件库中获取目标微前端代码中调用的业务组件,并且前端私有npm服务器将获取到的目标微前端代码中调用的业务组件发送给系统构建服务器,以使系统构建服务器获取到目标微前端代码中调用的业务组件。
可选地,上述前端私有npm服务器可以为基于Nexus搭建的私有npm服务器、基于verdaccio搭建的私有npm服务器、基于sinopia搭建的私有npm服务器等等。其中,上述Nexus可以为一种特殊的远程仓库,且是架在局域网内的仓库服务;上述verdaccio可以为一个简单的、零配置本地私有npm软件包代理注册表;上述sinopia可以为一个部署简易且能够实现github仓储私有化的npm组件。可选地,上述业务组件获取请求中可以携带目标微前端代码中调用的业务组件的标识。可选地,上述标识可以通过字母、数字和/或符号等字符表示。
需要说明的是,上述接入业务组件库的微前端系统可以理解为微前端系统中调用有业务组件库中业务组件的所有微前端系统。可选地,上述业务组件库可以为已经对需要修改或更新的公共业务组件处理后的最新组件库,该业务组件库中包括所有公共业务最新的业务组件。
S200、根据目标微前端代码和目标微前端代码的业务组件,构建目标微前端代码对应的目标微前端系统。
具体地,系统构建服务器可以将获取到的目标微前端代码的业务组件与目标微前端代码结合,生成目标微前端代码对应的目标微前端系统。可选地,目标微前端代码的业务组件与目标微前端代码的结合顺序可以依次为业务组件、目标微前端代码,还可以依次为目标微前端代码、业务组件。可选地,上述目标微前端系统可以理解为已修改或者已更新业务组件后生成的对应微前端系统。
本申请实施例提供的微前端系统构建方法可以从业务组件库中获取目标微前端代码中公共业务最新的业务组件,并根据目标微前端代码和目标微前端代码中公共业务最新的业务组件,构建目标微前端代码对应的目标微前端系统;在公共业务的业务组件需要修改或者更新的情况下,该方法可以避免开发人员对微前端系统的代码进行修改并重新调试的过程,可以直接从业务组件库中获取已修改或者已更新的业务组件来生成微前端代码对应的微前端系统,从而能够减小微前端系统的修改或更新操作的耗时,并且还可以快速、及时、对微前端系统进行修改或更新,同时,该方法不需要对修改后的代码进行重新调试,还可以降低微前端系统修改或更新的复杂度。
下面将介绍如何根据最新的业务组件构建所需要的目标微前端系统的过程。在一实施例中,如图3所示,上述S200中根据目标微前端代码和目标微前端代码的业务组件,构建目标微前端代码对应的目标微前端系统的步骤,可以通过以下步骤实现:
S210、根据目标微前端代码和目标微前端代码的业务组件,构建镜像文件。
具体地,系统构建服务器可以将获取到的目标微前端代码的业务组件融合至目标微前端代码中业务组件的调用信息所在位置处,然后通过前端打包工具对融合后的代码进行打包处理,得到镜像文件。
其中,融合后的代码可以通过超文本标记语言HTML、层叠样式表CSS、脚本语言JS和/或JS的超集TS等等组成。可选地,TS可以包括JS的库和函数。可选地,上述镜像文件的格式可以为光盘镜像文件格式ISO、二进制光盘镜像文件格式BIN、磁盘镜像文件格式IMG、一次性写盘CD或者DVD映像格式DAO等等。
S220、根据镜像文件构建目标微前端代码对应的目标微前端系统。
具体地,系统构建服务器可以直接运行镜像文件生成目标微前端代码对应的目标微前端系统。
本申请实施例提供的微前端系统构建方法可以根据获取到的目标微前端代码的业务组件与目标微前端代码构建镜像文件,然后根据镜像文件构建目标微前端代码对应的目标微前端系统;该方法可以通过已修改后的目标微前端代码的业务组件与目标微前端代码构建对应的镜像文件,不需要对原始业务组件进行修改,能够减少已修改的业务组件与微前端代码融合后重新调试的流程,从而能够节省调试所需的人力资源和人力成本。
在一些场景中,可能需要构建一个大的前端系统,该前端系统通过多个微前端系统组成,在构建这个前端系统的过程中,需要将每个微前端系统对应的镜像文件存储,然后将所有微前端系统对应的镜像文件同时发布生成前段系统,或者,在前端系统中的一部分微前端系统需要修改或者更新时,可以仅对待修改或待更新的微前端系统的镜像文件进行修改,所以未修改或者未更新的镜像文件可以直接使用进行发布,基于此,均需要将微前端系统对应的镜像文件进行存储。在一实施例中,根据镜像文件构建目标微前端代码对应的目标微前端系统之前,上述微前端系统构建方法还包括:将镜像文件存储至镜像仓库中。
具体地,系统构建服务器可以将镜像文件存储至镜像仓库中。可选地,上述镜像仓库可以为私有镜像仓库或者公有镜像仓库。可选地,私有镜像仓库可以为registry服务器部署的私有仓库、阿里云部署的私有仓库,还可以为其它类型的私有仓库。在本申请实施例中,上述镜像仓库为harbor服务器部署的私有仓库。
进一步,如图4所示,上述S220中根据镜像文件构建目标微前端代码对应的目标微前端系统的步骤,可以包括:
S221、从镜像仓库中获取镜像文件。
具体地,上述镜像仓库中可以存储至少一个镜像文件,其中可以存储未更新的镜像文件,还可以存储更新后的镜像文件。但在本申请实施例中,镜像仓库中存储的是最新的镜像文件。
S222、将镜像文件发布生成目标微前端系统。
其中,系统构建服务器可以通过开源的镜像平台,将镜像文件发布生成目标微前端系统。可选地,上述开源的镜像平台可以为语言类、工具类、操作系统类的镜像平台,当然,还可以为其它类型的镜像平台。在本申请实施例中,上述开源的镜像平台可以为开源容器集群管理系统(Kubernetes,K8s)。
需要说明的是,在第一次构建前端系统时,系统构建服务器可以从镜像仓库中获取前端系统中包括的所有微前端系统对应的所有镜像文件。在需要对前端系统中的部分微前端系统进行修改或更新时,系统构建服务器可以从镜像仓库中获取前端系统中已修改的微前端系统的镜像文件,并将已修改的微前端系统的镜像文件进行发布,以更新这些微前端系统,得到目标微前端系统。可选地,上述前端系统可以理解为用户界面,用户界面可以通过微前端系统组成。
本申请实施例提供的微前端系统构建方法可以将镜像文件存储至镜像仓库中,在需要对部分微前端系统进行修改或更新时,仅对这部分微前端系统的镜像文件进行更新,不需要对其它的镜像文件进行更新,从而能够减少构建前端系统的代码开发量,并且还可以提高前端系统的构建速度。
下面将介绍如何构建镜像文件的过程。在一实施例中,如图5所示,上述S210中根据目标微前端代码和目标微前端代码的业务组件构建镜像文件的步骤,可以通过以下步骤实现:
S211、对目标微前端代码和目标微前端代码的业务组件进行编译并打包,得到前端包。
具体地,系统构建服务器可以将获取到的目标微前端代码的业务组件融合至目标微前端代码中业务组件的调用信息所在位置处,然后调用编译命令或编译函数对融合后的代码进行编译,之后采用前端打包工具对编译后的代码进行打包处理,生成前端包。
在本申请实施例中,微前端代码的格式不同,编译时所需的编译命令或编译函数也可以不同。可选地,上述前端打包工具可以为代码编译工具Webpack、快速零配置的打包工具Parcel、前端构建工具Snowpack或者打包器esbuild等等。可选地,上述打包处理可以包括压缩混淆、性能优化、浏览器兼容等处理过程。
S212、将前端包和目标微前端代码所属的开发环境文件进行打包,生成镜像文件。
需要说明的是,系统构建服务器可以采用镜像打包工具将前端包和目标微前端代码所属的开发环境文件进行打包,生成镜像文件。可选地,镜像打包工具可以为开源的应用容器引擎docker、无守护进程的容器引擎Podman、Linux容器工具LXC、虚拟专用服务器OpenVZ等等。
本申请实施例提供的微前端系统构建方法可以对目标微前端代码和目标微前端代码的业务组件进行编译并打包得到前端包,并将前端包和目标微前端代码所属的开发环境文件进行打包生成镜像文件,在需要对部分微前端系统进行修改或更新时,仅对这部分微前端系统的镜像文件进行更新,不需要对其它的镜像文件进行更新,从而能够减少对代码进行重复开发。
为了避免对微前端系统的代码进行修改并重新调试,需要不断更新业务组件库中微前端代码的业务组件。基于此,在从业务组件库中获取目标微前端代码的业务组件之前,在一实施例中,如图6所示,上述微前端系统构建方法可以还包括:
S300、从代码管理服务器中获取目标微前端代码。
具体地,系统构建服务器可以向代码管理服务器发送微前端代码获取请求,代码管理服务器响应接收到的微前端代码获取请求下载目标微前端代码,并将目标微前端代码发送至代码管理服务器。
需要说明的是,代码管理服务器可以为gerrit服务器,也可以为SVN服务器,当然,代码管理服务器还可以为其它服务器。在本申请实施例中,上述系统构建服务器为GitLab服务器;具体地,系统构建服务器通过GitLab工具从GitLab服务器拉取目标微前端代码。
S400、对目标微前端代码进行代码扫描检查。
可以理解的是,系统构建服务器可以采用代码扫描检查工具,对目标微前端代码进行代码扫描检查,以检查目标微前端代码中是否符合代码中命令行规范、代码格式错误等等。
可选地,上述代码扫描检查工具可以为静态分析工具DeepSource、自动化代码审查工具Codacy或静态分析工具DeepScan等等,但在本申请实施例中,上述代码扫描检查工具为代码静态扫描工具(Sonar)。
S500、若目标微前端代码检查结果正确,则执行从业务组件库中获取目标微前端代码的业务组件的步骤。
具体地,若系统构建服务器检测到目标微前端代码检查结果正确,则可以执行上述S100中的步骤。其中,若系统构建服务器检测到目标微前端代码检查结果不正确,则微前端系统构建流程结束,需要开发人员对目标微前端代码进行修改后,再重新执行上述S300中的步骤。
本申请实施例提供的微前端系统构建方法可以从代码管理服务器中获取目标微前端代码,对目标微前端代码进行代码扫描检查,在目标微前端代码检查结果正确时,执行从业务组件库中获取目标微前端代码的业务组件的步骤;该方法可以对获取到的目标微前端代码进行代码扫描检查,以确保目标微前端代码的正确性,从而能够避免构建出非目标微前端系统。
为了避免对微前端系统的代码进行修改并重新调试,需要动态构建业务组件库,以通过动态构建的业务组件库中最新的业务组件快速构建目标微前端系统,下面将介绍如何动态构建业务组件库的过程。在一实施例中,如图7所示,上述业务组件库的构建过程可以包括步骤:
S110、获取更新后的业务组件代码。
具体地,开发人员在计算机开发环境中开发更新后的业务组件代码,并将更新后的业务组件代码上传至代码管理服务器进行存储。进一步,系统构建服务器可以从代码管理服务器获取更新后的业务组件代码。
在本申请实施例中,系统构建服务器通过GitLab工具从GitLab服务器拉取更新后的业务组件代码。
需要说明的是,业务组件库存储的多个业务组件中的部分业务组件需要进行修改或者更新时,开发人员可以对这部分业务组件的代码进行修改或者更新,得到更新后的业务组件代码,并将更新后的业务组件代码上传至代码管理服务器进行存储,代码管理服务器可以通过更新后的业务组件代码替换对应的原始业务组件代码。
S120、基于更新后的业务组件代码生成最新的业务组件,并将最新的业务组件存储于业务组件库中。
具体地,系统构建服务器可以对更新后的业务组件代码进行格式转换处理,得到最新的业务组件,并将最新的业务组件存储于业务组件库中。可选地,最新的业务组件可以以包的形式存在。
其中,上述最新的业务组件存储于业务组件库中可以理解为通过最新的业务组件替换业务组件库中对应的原始业务组件的过程。
本申请实施例提供的微前端系统构建方法可以获取更新后的业务组件代码,并基于更新后的业务组件代码生成最新的业务组件,并将最新的业务组件存储于业务组件库中;该方法可以仅更新业务组件,并将更新后的业务组件存储至业务组件库中,以便在构建微前端系统时,直接使用业务组件库中最新的业务组件与目标微前端代码构建目标微前端代码,该过程能够避免代码调试的过程,不需要开发人员具有代码调试的专业能力,从而能够降低开发人员的专业要求;同时,该方法只需对业务组件进行二次开发,不需要对所有接入业务组件库的微前端系统的代码做任何修改,就能够达到修改或更新微前端系统的目的,使得整个过程简单化;另外,该方法可以基于业务组件库,对接入业务组件库的所有微前端系统进行同步修改或更新,从而能够减少公共业务的业务组件的代码开发。
为了确定更新后的业务组件的准确性,需要对更新后的业务组件代码进行检测以确保更新后的业务组件代码正确无误。在一实施例中,如图8所示,上述S120中基于更新后的业务组件代码生成最新的业务组件的步骤,可以通过以下步骤实现:
S121、对更新后的业务组件代码进行代码扫描检查。
具体地,开发人员在计算机开发环境中开发更新后的业务组件代码,并将更新后的业务组件代码上传至代码管理服务器进行存储。进一步,系统构建服务器可以从代码管理服务器获取更新后的业务组件代码,并对更新后的业务组件代码进行代码扫描检查。
在本申请实施例中,系统构建服务器通过GitLab工具从GitLab服务器拉取更新后的业务组件代码。其中,若仅需要对业务组件库中的部分业务组件进行修改或更新,则开发人员仅开发这部分业务组件对应更新后的业务组件代码,对不需要修改或更新的业务组件的代码不用重复开发,该情况下,系统构建服务器通过GitLab工具从GitLab服务器拉取更新后的业务组件代码。
可选地,GitLab服务器还可以存储未更新的业务组件代码,未更新的业务组件代码和更新后的业务组件代码可以分别存储在不同的信息库中,不同的信息库可以携带不同的区别标识,以区分信息库存储的是未更新的业务组件代码还是更新后的业务组件代码。
S122、若更新后的业务组件代码检查结果正确,则对更新后的业务组件代码进行编译,得到最新的业务组件。
具体地,若系统构建服务器检测到更新后的业务组件代码检查结果正确,则可以通过编译函数或者编译指令,对更新后的业务组件代码进行编译,得到最新的业务组件。
本申请实施例提供的微前端系统构建方法可以对更新后的业务组件代码进行代码扫描检查,在更新后的业务组件代码检查结果正确后,对更新后的业务组件代码进行编译得到最新的业务组件;该方法可以对更新后的业务组件代码进行代码扫描检查,以确保更新后的业务组件代码的正确性,从而能够避免构建出非目标业务组件。
为了便于本领域技术人员的理解,以执行主体为系统构建服务器为例介绍本申请提供的微前端系统构建方法,具体的,该方法包括:
(1)从代码管理服务器中获取目标微前端代码。
(2)对目标微前端代码进行代码扫描检查。
(3)若目标微前端代码检查结果正确,则从业务组件库中获取目标微前端代码的业务组件;目标微前端代码为所有接入业务组件库的微前端系统中任一微前端系统的代码;业务组件库中包括所有公共业务最新的业务组件。
其中,业务组件库的构建过程包括:
(4)获取更新后的业务组件代码;
(5)对更新后的业务组件代码进行代码扫描检查;
(6)若更新后的业务组件代码检查结果正确,则对更新后的业务组件代码进行编译,得到最新的业务组件,并将最新的业务组件存储于业务组件库中。
(7)对目标微前端代码和目标微前端代码的业务组件进行编译并打包,得到前端包。
(8)将前端包和目标微前端代码所属的开发环境文件进行打包,生成镜像文件。
(9)将镜像文件存储至镜像仓库中。
(10)从镜像仓库中获取镜像文件。
(11)将镜像文件发布生成目标微前端系统。
以上(1)至(11)的执行过程具体可以参见上述实施例的描述,其实现原理和技术效果类似,在此不再赘述。
应该理解的是,虽然图2-8的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-8中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图9所示,提供了一种微前端系统构建装置,包括:业务组件获取模块11和系统构建模块12;其中:
业务组件获取模块11,用于从业务组件库中获取目标微前端代码的业务组件;目标微前端代码为所有接入业务组件库的微前端系统中任一微前端系统的代码;业务组件库中包括所有公共业务最新的业务组件;
系统构建模块12,用于根据目标微前端代码和目标微前端代码的业务组件,构建目标微前端代码对应的目标微前端系统。
本实施例提供的微前端系统构建装置,可以执行上述方法实施例,其实现原理和技术效果类似,在此不再赘述。
在其中一个实施例中,系统构建模块12包括:镜像文件构建单元和系统构建单元,其中:
镜像文件构建单元,用于根据目标微前端代码和目标微前端代码的业务组件,构建镜像文件;
系统构建单元,用于根据镜像文件构建目标微前端代码对应的目标微前端系统。
本实施例提供的微前端系统构建装置,可以执行上述方法实施例,其实现原理和技术效果类似,在此不再赘述。
在其中一个实施例中,微前端系统构建装置包括:镜像文件存储模块,其中:
镜像文件存储模块,将镜像文件存储至镜像仓库中;
进一步,系统构建单元包括:镜像文件获取子单元和系统构建子单元,其中:
镜像文件获取子单元,用于从镜像仓库中获取镜像文件;
系统构建子单元,用于将镜像文件发布生成目标微前端系统。
本实施例提供的微前端系统构建装置,可以执行上述方法实施例,其实现原理和技术效果类似,在此不再赘述。
在其中一个实施例中,镜像文件构建单元包括:业务组件编译子单元和镜像文件生成子单元,其中:
业务组件编译子单元,用于对目标微前端代码和目标微前端代码的业务组件进行编译并打包,得到前端包;
镜像文件生成子单元,用于将前端包和目标微前端代码所属的开发环境文件进行打包,生成镜像文件。
本实施例提供的微前端系统构建装置,可以执行上述方法实施例,其实现原理和技术效果类似,在此不再赘述。
在其中一个实施例中,微前端系统构建装置还包括:代码获取模块、代码检查模块和执行确定模块,其中:
代码获取模块,用于从代码管理服务器中获取目标微前端代码;
代码检查模块,用于对目标微前端代码进行代码扫描检查;
执行确定模块,用于在目标微前端代码检查结果正确时,执行从业务组件库中获取目标微前端代码的业务组件的步骤。
本实施例提供的微前端系统构建装置,可以执行上述方法实施例,其实现原理和技术效果类似,在此不再赘述。
在其中一个实施例中,业务组件获取模块11还包括:业务组件代码获取单元和业务组件存储单元,其中:
业务组件代码获取单元,用于获取更新后的业务组件代码;
业务组件存储单元,用于根据更新后的业务组件代码生成最新的业务组件,并将最新的业务组件存储于业务组件库中。
本实施例提供的微前端系统构建装置,可以执行上述方法实施例,其实现原理和技术效果类似,在此不再赘述。
在其中一个实施例中,业务组件存储单元包括:扫码检查子单元和编译子单元,其中:
扫码检查子单元,用于对更新后的业务组件代码进行代码扫描检查;
编译子单元,用于在更新后的业务组件代码检查结果正确时,对更新后的业务组件代码进行编译,得到最新的业务组件。
本实施例提供的微前端系统构建装置,可以执行上述方法实施例,其实现原理和技术效果类似,在此不再赘述。
关于微前端系统构建装置的具体限定可以参见上文中对于微前端系统构建方法的限定,在此不再赘述。上述微前端系统构建装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于服务器中的处理器中,也可以以软件形式存储于服务器中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种服务器,该服务器内部结构图可以参见图1所示。该服务器包括通过系统总线连接的处理器、存储器和网络接口。其中,该服务器的处理器用于提供计算和控制能力。该服务器的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该服务器的数据库用于存储微前端系统构建过程中的中间代码。该服务器的网络接口用于与外部的终点通过网络连接通信。该计算机程序被处理器执行时以实现一种微前端系统构建方法。
本领域技术人员可以理解,图1中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的服务器的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种服务器,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
从业务组件库中获取目标微前端代码的业务组件;目标微前端代码为所有接入业务组件库的微前端系统中任一微前端系统的代码;业务组件库中包括所有公共业务最新的业务组件;
根据目标微前端代码和目标微前端代码的业务组件,构建目标微前端代码对应的目标微前端系统。
在一个实施例中,提供了一种存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
从业务组件库中获取目标微前端代码的业务组件;目标微前端代码为所有接入业务组件库的微前端系统中任一微前端系统的代码;业务组件库中包括所有公共业务最新的业务组件;
根据目标微前端代码和目标微前端代码的业务组件,构建目标微前端代码对应的目标微前端系统。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
从业务组件库中获取目标微前端代码的业务组件;目标微前端代码为所有接入业务组件库的微前端系统中任一微前端系统的代码;业务组件库中包括所有公共业务最新的业务组件;
根据目标微前端代码和目标微前端代码的业务组件,构建目标微前端代码对应的目标微前端系统。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种微前端系统构建方法,其特征在于,所述方法包括:
从业务组件库中获取目标微前端代码的业务组件;所述目标微前端代码为所有接入所述业务组件库的微前端系统中任一微前端系统的代码;所述业务组件库中包括所有公共业务最新的业务组件;
根据所述目标微前端代码和所述目标微前端代码的业务组件,构建所述目标微前端代码对应的目标微前端系统。
2.根据权利要求1所述的方法,其特征在于,所述根据所述目标微前端代码和所述目标微前端代码的业务组件,构建所述目标微前端代码对应的目标微前端系统,包括:
根据所述目标微前端代码和所述目标微前端代码的业务组件,构建镜像文件;
根据所述镜像文件构建所述目标微前端代码对应的目标微前端系统。
3.根据权利要求2所述的方法,其特征在于,所述根据所述镜像文件构建所述目标微前端代码对应的目标微前端系统之前,所述方法还包括:
将所述镜像文件存储至镜像仓库中;
则所述根据所述镜像文件构建所述目标微前端代码对应的目标微前端系统,包括:
从所述镜像仓库中获取所述镜像文件;
将所述镜像文件发布生成所述目标微前端系统。
4.根据权利要求2所述的方法,其特征在于,所述根据所述目标微前端代码和所述目标微前端代码的业务组件,构建镜像文件,包括:
对所述目标微前端代码和所述目标微前端代码的业务组件进行编译并打包,得到前端包;
将所述前端包和所述目标微前端代码所属的开发环境文件进行打包,生成所述镜像文件。
5.根据权利要求1-3中任一项所述的方法,其特征在于,在所述从业务组件库中获取目标微前端代码的业务组件之前,所述方法还包括:
从代码管理服务器中获取所述目标微前端代码;
对所述目标微前端代码进行代码扫描检查;
若所述目标微前端代码检查结果正确,则执行所述从业务组件库中获取目标微前端代码的业务组件的步骤。
6.根据权利要求1-3中任一项所述的方法,其特征在于,所述业务组件库的构建过程包括:
获取更新后的业务组件代码;
基于所述更新后的业务组件代码生成最新的业务组件,并将所述最新的业务组件存储于所述业务组件库中。
7.根据权利要求6所述的方法,其特征在于,所述基于所述更新后的业务组件代码生成最新的业务组件,包括:
对所述更新后的业务组件代码进行代码扫描检查;
若所述更新后的业务组件代码检查结果正确,则对所述更新后的业务组件代码进行编译,得到所述最新的业务组件。
8.一种微前端系统构建装置,其特征在于,所述装置包括:
业务组件获取模块,用于从业务组件库中获取目标微前端代码的业务组件;所述目标微前端代码为所有接入所述业务组件库的微前端系统中任一微前端系统的代码;所述业务组件库中包括所有公共业务最新的业务组件;
微前端系统构建模块,用于根据所述目标微前端代码和所述目标微前端代码的业务组件,构建所述目标微前端代码对应的目标微前端系统。
9.一种服务器,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1-7中任一项所述的微前端系统构建方法的步骤。
10.一种可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-7中任一项所述的微前端系统构建方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210689840.8A CN115048082A (zh) | 2022-06-17 | 2022-06-17 | 微前端系统构建方法、装置、服务器及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210689840.8A CN115048082A (zh) | 2022-06-17 | 2022-06-17 | 微前端系统构建方法、装置、服务器及可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115048082A true CN115048082A (zh) | 2022-09-13 |
Family
ID=83161955
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210689840.8A Pending CN115048082A (zh) | 2022-06-17 | 2022-06-17 | 微前端系统构建方法、装置、服务器及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115048082A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117435244A (zh) * | 2023-12-21 | 2024-01-23 | 南京掌控网络科技有限公司 | 一种前端跨工程公共库系统及其构建方法 |
-
2022
- 2022-06-17 CN CN202210689840.8A patent/CN115048082A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117435244A (zh) * | 2023-12-21 | 2024-01-23 | 南京掌控网络科技有限公司 | 一种前端跨工程公共库系统及其构建方法 |
CN117435244B (zh) * | 2023-12-21 | 2024-03-19 | 南京掌控网络科技有限公司 | 一种前端跨工程公共库系统及其构建方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1318932C (zh) | 用于自动确定程序的潜在蠕虫样行为的方法与装置 | |
CN113704110A (zh) | 用户界面的自动化测试方法及装置 | |
CN110955409B (zh) | 在云平台上创建资源的方法和装置 | |
CN113495728A (zh) | 依赖关系确定方法、装置、电子设备及介质 | |
CN115357898A (zh) | 一种java组件的依赖分析方法、装置及介质 | |
CN115048082A (zh) | 微前端系统构建方法、装置、服务器及可读存储介质 | |
US20210026756A1 (en) | Deriving software application dependency trees for white-box testing | |
US11755458B2 (en) | Automatic software behavior identification using execution record | |
US11604662B2 (en) | System and method for accelerating modernization of user interfaces in a computing environment | |
CN111857797B (zh) | 一种镜像构建方法、系统及相关装置 | |
CN114115904A (zh) | 信息处理方法、装置、服务器及存储介质 | |
CN106502707B (zh) | 代码生成方法及装置 | |
CN117112060A (zh) | 组件库构建方法、装置、电子设备及存储介质 | |
CN111240987A (zh) | 移植程序检测方法、装置、电子设备及计算机可读存储介质 | |
CN115904384A (zh) | 应用程序发布的配置方法、装置、设备及存储介质 | |
CN114706586A (zh) | 代码编译、代码运行方法、装置、计算机设备及存储介质 | |
CN112328241B (zh) | 一种应用程序开发中创建Android库模块依赖关系的方法及装置 | |
CN113220586A (zh) | 一种自动化的接口压力测试执行方法、装置和系统 | |
CN115543486B (zh) | 面向无服务器计算的冷启动延迟优化方法、装置和设备 | |
CN116974653B (zh) | 类加载方法及系统 | |
CN114297089B (zh) | 基于容器的Python远程动态调试方法及系统 | |
CN107632934B (zh) | 一种C-sharp中函数复制方法及装置 | |
CN115080390A (zh) | 一种用于软件补丁包回归测试的方法、装置及设备 | |
CN115576574A (zh) | 代码打包方法、装置、介质及设备 | |
CN116795419A (zh) | 版本包组包方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |