CN114168188A - 一种前端项目打包方法、装置、电子设备及存储介质 - Google Patents
一种前端项目打包方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN114168188A CN114168188A CN202111530241.3A CN202111530241A CN114168188A CN 114168188 A CN114168188 A CN 114168188A CN 202111530241 A CN202111530241 A CN 202111530241A CN 114168188 A CN114168188 A CN 114168188A
- Authority
- CN
- China
- Prior art keywords
- file
- code
- target
- image
- target image
- 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/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开提供了一种前端项目打包方法、装置、电子设备及存储介质,包括连接代码仓库,获取第一文件、第二文件和第三文件;所述第一文件用于提供项目描述和依赖配置的信息,所述第二文件用于关联所述第一文件的信息,所述第三文件用于提供项目初始代码;基于容器编排引擎生成容器,在所述容器中创建目标镜像;拷贝所述第一文件和第二文件存储在所述目标镜像中;基于所述第一文件,在所述目标镜像中添加第一资源文件,所述第一资源文件用于提供项目依赖和转换语句;在所述目标镜像中将所述第三文件中的项目初始代码转换为目标代码;将具有所述目标代码的所述目标镜像推送到镜像仓库。
Description
技术领域
本公开涉及计算机技术领域,尤其涉及一种前端项目打包方法、装置、电子设备及存储介质。
背景技术
目前前端的大部分项目开发的项目代码,都需要经过编译构建生成可以运行的目标代码。现在容器化技术非常成熟,前端的项目通常会使用容器化技术进行部署,以更高效的利用系统资源,更轻松的维护和扩展,解决前端运行环境不一致的问题。这些容器必须跨多个服务器主机进行部署,为了更好的管理多个容器,我们采用容器编排引擎来解决这一问题。现有的打包方式都是通过生成容器,在容器中进行项目的构建,然后进行打包并推送至仓库。
由于一旦推送至远程仓库,容器编排引擎中的容器就会销毁,对于经常需要打包的项目来说,首次打包完成后,后续每次都需要重新生成容器来进行打包,而在打包中必须使用的,主要用于提供项目依赖的资源文件文件并非每次都需要更新,这就导致原本在容器中生成的资源文件每次都要重新安装,这一步非常耗时。
发明内容
本公开提供一种前端项目打包方法、装置、电子设备及存储介质,以至少解决现有技术中存在的以上技术问题。
本公开一方面提供一种方法,包括:连接代码仓库,获取第一文件、第二文件和第三文件;所述第一文件用于提供项目描述和依赖配置的信息,所述第二文件用于关联所述第一文件的信息,所述第三文件用于提供项目初始代码;
基于容器编排引擎生成容器,在所述容器中创建目标镜像;
拷贝所述第一文件和第二文件存储在所述目标镜像中;
基于所述第一文件,在所述目标镜像中添加第一资源文件,所述第一资源文件用于提供项目依赖和转换语句;
在所述目标镜像中将所述第三文件中的项目初始代码转换为目标代码;
将具有所述目标代码的所述目标镜像推送到镜像仓库。
在一可实施方式中,所述连接代码仓库之前,该方法包括:
获取本地的所述第一文件、所述第三文件和第四文件,所述第四文件包括用于创建所述目标镜像的指令;
根据所述第一文件生成所述第二文件;
将所述第一文件、第二文件、第三文件和第四文件存储在位于远端的所述代码仓库。
在一可实施方式中,所述创建目标镜像包括:从所述代码仓库获取所述第四文件,根据所述第四文件在所述容器中创建目标镜像。
在一可实施方式中,所述在所述目标镜像中将所述第三文件中的项目初始代码转换为目标代码,包括:
所述第一文件包含转换指令,所述转换指令用于指示执行所述第一资源文件中存储的转换语句;
在所述目标镜像中执行所述转换指令,以执行所述转换语句,将所述第三文件中的项目初始代码转换为目标代码。
在一可实施方式中,所述在所述目标镜像中添加第一资源文件之后,所述在所述目标镜像中将所述第三文件中的项目初始代码转换得到目标代码之前,该方法还包括:
拷贝所述第一资源文件,得到第二资源文件。
在一可实施方式中,所述得到所述目标代码之后和所述将具有所述目标代码的所述目标镜像推送到镜像仓库之前,该方法还包括:
拷贝所述第一资源文件或所述第二资源文件,以及拷贝所述第二阶段中的所述目标代码。
本公开另一方面提供一种装置,包括:
获取模块,用于连接代码仓库,获取第一文件、第二文件和第三文件;所述第一文件用于提供项目描述和依赖配置的信息,所述第二文件用于关联所述第一文件的信息,所述第三文件用于提供项目初始代码;
处理模块,用于基于容器编排引擎生成容器,在所述容器中创建目标镜像;
用于拷贝所述第一文件和第二文件存储在所述目标镜像中;
用于基于所述第一文件,在所述目标镜像中添加第一资源文件,所述第一资源文件用于提供项目依赖和转换语句;
所述处理模块还用于在所述目标镜像中将所述第三文件中的项目初始代码转换为目标代码;
分析模块,将具有所述目标代码的所述目标镜像推送到镜像仓库。
本公开再一方面提供一种电子设备,包括:存储器和处理器,所述存储器存储由所述处理器可执行的计算机程序,所述处理器执行所述计算机程序时实现上述方法。
本公开还一方面提供一种存储介质,其特征在于,所述存储介质上存储有计算机程序,所述计算机程序被读取并执行时,实现上述方法。
基于上述方案,本公开通过在容器编排引擎生成的容器中,创建目标镜像,在目标镜像中通过拷贝第一文件和第二文件,安装第一资源文件,并继续在目标镜像中将第三文件中的项目初始代码转换为目标代码;将目标镜像推送至镜像仓库以完成首次打包后,后续再进行前端项目打包时,只要第一资源文件未发生改变,即便变更了项目初始代码,也能够直接获取首次打包时缓存在目标镜像的镜像层中的第一资源文件,相对于现有技术减少了重新安装第一资源文件和将第一资源文件再拷贝到目标镜像中的过程,有效提升了后续前端项目打包的速度。
附图说明
图1所示为本公开一实施例提供的前端项目打包方法的流程示意图;
图2所示为本公开一实施例提供的执行前端项目打包方法后的再次打包的方法流程示意图;
图3所示为本公开另一实施例提供的目标镜像创建过程的流程示意图;
图4所示为本公开一实施例提供的前端项目打包装置的结构示意图。
具体实施方式
为使本公开的目的、特征、优点能够更加的明显和易懂,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而非全部实施例。基于本公开中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
前端项目首次打包后,为了提高后续打包的速度,如图1所示,本公开一实施例提供了一种前端项目打包方法,包括:
步骤101,连接代码仓库,获取第一文件、第二文件和第三文件;所述第一文件用于提供项目描述和依赖配置的信息,所述第二文件用于关联所述第一文件的信息,所述第三文件用于提供项目初始代码;
在一示例中,连接代码仓库之前,需要先获取本地的第一文件、第三文件和第四文件,第四文件包括用于创建目标镜像的指令,根据第一文件能够生成第二文件;
将第一文件、第二文件、第三文件和第四文件存储在位于远端的代码仓库。
在一示例中,采用了docker容器化技术,因此目标镜像建立于docker容器化技术体系下,本公开仅以docker容器化技术举例,具体在此不做限定。
其中,由于第一文件通常用于提供项目描述和依赖配置的信息,在docker容器化技术中,此种功能的第一文件通常被命名为package.json文件,但本公开对该命名不做具体限定。
第二文件根据第一文件生成,第二文件通常用于关联所述第一文件的信息,如确定第一文件中信息的对应版本号,在docker容器化技术中,此种功能的第二文件通常被命名为yarn.lock文件,但本公开对该命名不做具体限定。
第三文件通常用于提供项目初始代码,在docker容器化技术中,此种功能的第三文件通常被命名为项目代码文件,但本公开对该命名不做具体限定。
第四文件通常存储用于创建目标镜像的指令以及其他用于指示执行的指令,在docker容器化技术中,此种功能的第三文件通常被命名为dockerfile文件,但本公开对该命名不做具体限定。
本示例中,代码仓库为gitlab代码仓库,代码仓库的类型在此不做具体限定。
第一文件、第三文件和第四文件为预先编写后存储在本地的文件。第四文件中存储了用于创建目标镜像的指令以及其他用于指示执行的指令,可以理解的是,第四文件中用于创建目标镜像的指令包括,创建一个可进行操作的目标镜像的空壳,在目标镜像的空壳内自定义设置拷贝、添加和存储等指令。
在本步骤101中,除获取了第一文件、第二文件和第三文件外,连接代码仓库时还同时获取了第四文件。
本步骤101连接代码仓库,可以是通过添加在容器编排引擎上的流水线执行的,但具体实现连接和获取的方式在此不做具体限定。
步骤102,基于容器编排引擎生成容器,在所述容器中创建目标镜像容器;
在一示例中,容器编排引擎采用Kubernetes,也可采用其他类型,在此不做具体限定,在容器编排引擎上添加流水线,流水线包含了多个配置阶段。例如,容器编排引擎可先通过流水线连接仓库代码,执行上述步骤101;其次,容器编排引擎通过流水线生成容器(container),最后,在容器中,根据第四文件创建目标镜像。
如上述步骤101中所述,此处的目标镜像为一个目标镜像的空壳,通过接下来的步骤继续执行第四文件中预先设置的指令,可逐步在目标镜像中进行操作,以最终得到具有所需内容的目标镜像,即对目标镜像的空壳进行填充至得到存在需要的内容的目标镜像停止。因此,后续步骤103到步骤105,可看作是完善目标镜像的过程,也可认为是进一步创建目标镜像的过程。
应该理解的是,流水线预先设置在容器编排引擎中,容器编排引擎通过执行流水线以实现本方案的步骤,步骤101的执行也可以通过容器编排引擎的流水线执行,即在容器编排引擎中完成这一操作,也可采取其他方式,在此不做具体限定。
步骤103,拷贝所述第一文件和第二文件存储在所述目标镜像中;
在一示例中,拷贝第一文件和第二文件即为拷贝第一文件和第二文件。根据步骤101中的内容可知,第四文件中存储了创建目标镜像的指令,因此,第四文件在本地时,已经包括了拷贝第一文件和第二文件的指令,只待目标镜像创建后执行。
由于本步骤在目标镜像创建后执行,因此,根据目标镜像的特性,执行拷贝第一文件和第二文件的指令,目标镜像会相应的生成第一镜像层,将执行拷贝第一文件和第二文件的指令的生成结果缓存在第一镜像层中。
应该理解的是,在一示例中,使用第四文件构建目标镜像的技术为docker容器化技术,在后续打包的过程中,创建目标镜像时,docker将在缓存中查找可复用的现有镜像,如已经缓存在第一镜像层中的第一文件和第二文件,若后续打包需要复用,则可从第一镜像层中直接获取。
步骤104,基于所述第一文件,在所述目标镜像中添加第一资源文件,所述第一资源文件用于提供项目依赖和转换语句;
通过第一文件,执行添加指令,可以生成第一资源文件,其中,第一资源文件中包含了第三文件中的项目初始代码运行和目标代码运行需要使用的依赖,以及用于将第三文件中的项目初始代码转换成目标代码的转换语句。
在一示例中,docker容器化技术中,通过第一文件执行添加指令以生成第一资源文件,其中,添加指令可命名为yarn.install,在此不做具体限定。
由于第一资源文件主要用于提供项目所需的依赖,在docker容器化技术中,此种功能的第一资源文件通常被命名为node_modules文件,但本公开对该命名不做具体限定
根据步骤101中的内容可知,第四文件中存储了创建目标镜像的指令,包括创建一个可进行操作的目标镜像的空壳,在目标镜像的空壳内自定义设置拷贝、添加和存储等指令。因此,第四文件中已经包括了基于第一文件,执行添加,即生成第一资源文件的指令,只待步骤103完成后执行。
由于本步骤104在目标镜像创建后执行,因此,根据目标镜像的特性,执行基于第一文件,执行添加,即生成第一资源文件的指令,目标镜像会相应的生成第二镜像层,将基于第一文件,执行添加,即生成第一资源文件的指令的生成结果,缓存在第二镜像层中。
步骤105,在所述目标镜像中将所述第三文件中的项目初始代码转换为目标代码;
第一文件包含转换指令,转换指令用于指示执行第一资源文件中存储的转换语句;
在目标镜像中执行转换指令,以执行转换语句,将第三文件中的项目初始代码转换为目标代码。
其中,在将第一文件上传至远端的代码仓库之前,预先在本地的第一文件中构建转换指令,转换指令用于指示执行第一资源文件中存储的转换语句;
在一示例中,第三文件中使用的的代码语言为TypeScript,目标代码使用的代码语言为JavaScript,转换语句包括将TypeScript转为TypeScript的脚本语言tsc。此处仅以此为示例,具体代码语言的类型在此不做具体限定。
可以理解的是,步骤105是建立在步骤104执行完毕的基础上的,步骤104执行完毕时,目标镜像中已经存储有第一文件,并且已经添加了第一资源文件,因此,将第三文件中的项目初始代码转换为目标代码,是基于已有的第一文件、第三文件和第一资源文件共同作用执行的。
根据步骤101中的内容可知,第四文件中存储了创建目标镜像的指令,因此,第四文件在编写时,即编写了根据第一文件、第一资源文件以及第三文件,执行转换指令得到目标代码,只待步骤104完成后执行。
由于本步骤在目标镜像创建后执行,因此,根据目标镜像的特性,执行将第三文件中的项目初始代码转换为目标代码的指令,目标镜像会相应的生成第三镜像层,将执行将第三文件中的项目初始代码转换为目标代码的指令的生成结果缓存在第三镜像层中。
步骤106,将具有所述目标代码的所述目标镜像推送到镜像仓库;
应该理解的是,步骤105执行完毕后,目标镜像中存储有可供项目运行的目标代码以及可为目标代码运行提供依赖的第一资源文件,因此,将具有目标代码的目标镜像进行推送只是用于确定目标镜像创建完成的节点,而不代表目标镜像中只有目标代码。
当将目标镜像推送到镜像仓库,流水线中的容器销毁。
基于上述方案,本公开通过在容器编排引擎生成的容器中,创建目标镜像,在目标镜像中通过拷贝第一文件和第二文件,安装第一资源文件,并继续在目标镜像中将第三文件中的项目初始代码转换为目标代码;在将目标镜像推送至镜像仓库以完成首次打包后,后续再进行前端项目打包时,只要第一资源文件未发生改变,即便变更了项目初始代码,也能够直接获取首次打包时缓存在目标镜像的镜像层中的第一资源文件,相对于现有技术减少了重新安装第一资源文件和将第一资源文件再拷贝到目标镜像中的过程,有效提升了后续前端项目打包的速度。
通过执行本公开的打包方式,在首次打包完成后,后续需要进行新一轮的打包时,可以使用上述步骤中在目标镜像里产生的缓存,即本公开的技术方案在执行完首次打包后的后续打包过程中,具有较好的使用效果。
具体表现为,如图2所示,再次进行打包时,判断是否需要变更依赖,判断的依据为通过判断从代码仓库再次获取的第一文件和第二文件与首次打包中的相比是否发生变化,若第一文件和第二文件没有发生变化,则判断不需要变更依赖,即不需要变更第一资源文件,因此,可以直接获取缓存在目标镜像的第二镜像层中的第一资源文件;在第一资源文件未发生变更的基础上,判断第三文件中的项目初始代码是否发生变更,若项目初始代码也没有发生变化,还可直接从目标镜像的第三镜像层中获取目标代码;在第一资源文件未发生变更的基础上,若项目初始代码发生变化,则重新执行步骤105即可,将项目初始代码转换为目标代码的转换速度对项目打包的影响较小。
只有当判断第一文件和第二文件发生变化,即导致第一资源文件需要变更时,才需要从拷贝第一文件和第二文件存储在目标镜像中开始执行,即才需要执行和首次打包一样的所有步骤。
应该理解的是,上述判断未变更即使用缓存的方式,为依据docker容器化技术的缓存特性,由目标镜像自动对比,若存在未变更的情况,则目标镜像不执行相关指令(此处相关指令指的是上述步骤103到步骤105的执行指令),而直接获取首次打包时产生的缓存。因此,只需要根据本公开中步骤101到步骤106的实施例进行实施,即可在后续打包的过程中获得上述有益效果,而不再需要额外干预。
因此,相对于现有技术中需要重新添加以生成第一资源文件,并将生成的第一资源文件和目标代码拷贝到目标镜像中这耗时最久的两步,针对首次打包后还需多次打包的情况,本公开利用缓存机制有效提高了前端项目打包的速度。
在一示例中,为了更好的利用缓存,如图3所示,本公开的一实施例还提供了一种目标镜像的创建方法,主要在上述步骤102后执行,包括:
步骤301,拷贝所述第一文件和第二文件存储在所述目标镜像中;
步骤302,基于所述第一文件,在所述目标镜像中添加第一资源文件,所述第一资源文件用于提供项目依赖和转换语句;
步骤303,拷贝所述第一资源文件,得到第二资源文件;
其中,步骤303由于也是在目标镜像中执行,因此得到的第二资源文件也存储在目标镜像中。
步骤304,在所述目标镜像中将所述第三文件中的项目初始代码转换为目标代码;
根据上文步骤105可知,将第三文件中的项目代码文件转换为目标代码文件,需要使用第一资源文件中的转换语句,由于第二资源文件由第一资源文件拷贝而来,因此本步骤304中,可基于第二资源文件和第一文件,将第三文件中的项目初始代码转换为目标代码。
步骤305,拷贝所述第一资源文件或所述第二资源文件,以及拷贝所述目标代码。
在一示例中,步骤305优先拷贝第一资源文件,由于步骤305也是在目标镜像中执行,因此通过拷贝第一资源文件可在目标镜像中得到第三资源文件,同样地,拷贝目标代码可在目标镜像中得到相同的目标代码,因此可在得到第三资源文件和再得到的目标代码后,执行将目标镜像推送到镜像仓库的步骤。
可以理解的是,上述步骤301至步骤305的方法,预先配置在第四文件,只待步骤102执行完毕后,开始执行。
本发明一实施例还提供了一种前端项目打包装置,如图4所示,该装置包括:
获取模块10,用于连接代码仓库,获取第一文件、第二文件和第三文件;所述第一文件用于提供项目描述和依赖配置的信息,所述第二文件用于关联所述第一文件的信息,所述第三文件用于提供项目初始代码;
处理模块20,用于基于容器编排引擎生成容器,在所述容器中创建目标镜像;
用于拷贝所述第一文件和第二文件存储在所述目标镜像中;
用于基于所述第一文件,在所述目标镜像中添加第一资源文件,所述第一资源文件用于提供项目依赖和转换语句;
所述处理模块20还用于在所述目标镜像中将所述第三文件中的项目初始代码转换为目标代码;
分析模块30,将具有所述目标代码的所述目标镜像推送到镜像仓库。
还包括预处理模块40,用于在所述连接代码仓库之前,获取本地的所述第一文件、所述第三文件和第四文件,所述第四文件包括用于创建所述目标镜像的指令,根据所述第一文件生成所述第二文件;
所述预处理模块40还用于将所述第一文件、第二文件、第三文件和第四文件存储在位于远端的所述代码仓库。
除了上述方法和装置以外,本申请的实施例还可以是计算机程序产品,其包括计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本申请各种实施例的方法中的步骤。
所述计算机程序产品可以以一种或多种程序设计语言的任意组合来编写用于执行本申请实施例操作的程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如Java、C++等,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。
此外,本申请的实施例还可以是计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本申请各种实施例的方法中的步骤。
所述计算机可读存储介质可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
以上结合具体实施例描述了本申请的基本原理,但是,需要指出的是,在本申请中提及的优点、优势、效果等仅是示例而非限制,不能认为这些优点、优势、效果等是本申请的各个实施例必须具备的。另外,上述公开的具体细节仅是为了示例的作用和便于理解的作用,而非限制,上述细节并不限制本申请为必须采用上述具体的细节来实现。
本申请中涉及的器件、装置、设备、系统的方框图仅作为例示性的例子并且不意图要求或暗示必须按照方框图示出的方式进行连接、布置、配置。如本领域技术人员将认识到的,可以按任意方式连接、布置、配置这些器件、装置、设备、系统。诸如“包括”、“包含”、“具有”等等的词语是开放性词汇,指“包括但不限于”,且可与其互换使用。这里所使用的词汇“或”和“和”指词汇“和/或”,且可与其互换使用,除非上下文明确指示不是如此。这里所使用的词汇“诸如”指词组“如但不限于”,且可与其互换使用。
还需要指出的是,在本申请的装置、设备和方法中,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本申请的等效方案。
提供所公开的方面的以上描述以使本领域的任何技术人员能够做出或者使用本申请。对这些方面的各种修改对于本领域技术人员而言是非常显而易见的,并且在此定义的一般原理可以应用于其他方面而不脱离本申请的范围。因此,本申请不意图被限制到在此示出的方面,而是按照与在此公开的原理和新颖的特征一致的最宽范围。
为了例示和描述的目的已经给出了以上描述。此外,此描述不意图将本申请的实施例限制到在此公开的形式。尽管以上已经讨论了多个示例方面和实施例,但是本领域技术人员将认识到其某些变型、修改、改变、添加和子组合。
Claims (10)
1.一种前端项目打包方法,其特征在于,包括:
连接代码仓库,获取第一文件、第二文件和第三文件;所述第一文件用于提供项目描述和依赖配置的信息,所述第二文件用于关联所述第一文件的信息,所述第三文件用于提供项目初始代码;
基于容器编排引擎生成容器,在所述容器中创建目标镜像;
拷贝所述第一文件和第二文件存储在所述目标镜像中;
基于所述第一文件,在所述目标镜像中添加第一资源文件,所述第一资源文件用于提供项目依赖和转换语句;
在所述目标镜像中将所述第三文件中的项目初始代码转换为目标代码;
将具有所述目标代码的所述目标镜像推送到镜像仓库。
2.根据权利要求1所述的前端项目打包方法,其特征在于,所述连接代码仓库之前,该方法包括:
获取本地的所述第一文件、所述第三文件和第四文件,所述第四文件包括用于创建所述目标镜像的指令;
根据所述第一文件生成所述第二文件;
将所述第一文件、第二文件、第三文件和第四文件存储在位于远端的所述代码仓库。
3.根据权利要求2所述的前端项目打包方法,其特征在于,所述创建目标镜像包括:从所述代码仓库获取所述第四文件,根据所述第四文件在所述容器中创建目标镜像。
4.根据权利要求2所述的前端项目打包方法,其特征在于,所述在所述目标镜像中将所述第三文件中的项目初始代码转换为目标代码,包括:
所述第一文件包含转换指令,所述转换指令用于指示执行所述第一资源文件中存储的转换语句;
在所述目标镜像中执行所述转换指令,以执行所述转换语句,将所述第三文件中的项目初始代码转换为目标代码。
5.根据权利要求1至4任一项所述的前端项目打包方法,其特征在于,所述在所述目标镜像中添加第一资源文件之后,所述在所述目标镜像中将所述第三文件中的项目初始代码转换得到目标代码之前,该方法还包括:
拷贝所述第一资源文件,得到第二资源文件。
6.根据权利要求5所述的前端项目打包方法,其特征在于,所述得到所述目标代码之后和所述将具有所述目标代码的所述目标镜像推送到镜像仓库之前,该方法还包括:
拷贝所述第一资源文件或所述第二资源文件,以及拷贝所述第二阶段中的所述目标代码。
7.一种前端项目打包装置,其特征在于,包括:
获取模块,用于连接代码仓库,获取第一文件、第二文件;
和第三文件;所述第一文件用于提供项目描述和依赖配置的信息,所述第二文件用于关联所述第一文件的信息,所述第三文件用于提供项目初始代码;
处理模块,用于基于容器编排引擎生成容器,在所述容器中创建目标镜像;
用于拷贝所述第一文件和第二文件存储在所述目标镜像中;
用于基于所述第一文件,在所述目标镜像中添加第一资源文件,所述第一资源文件用于提供项目依赖和转换语句;
所述处理模块还用于在所述目标镜像中将所述第三文件中的项目初始代码转换为目标代码;
分析模块,将具有所述目标代码的所述目标镜像推送到镜像仓库。
8.根据权利要求7所述的前端项目打包装置,其特征在于,还包括:
预处理模块,用于在所述连接代码仓库之前,获取本地的所述第一文件、所述第三文件和第四文件,所述第四文件包括用于创建所述目标镜像的指令,根据所述第一文件生成所述第二文件;
所述预处理模块还用于将所述第一文件、第二文件、第三文件和第四文件存储在位于远端的所述代码仓库。
9.一种电子设备,其特征在于,包括:存储器和处理器,所述存储器存储由所述处理器可执行的计算机程序,所述处理器执行所述计算机程序时实现上述权利要求1-6任一项所述的前端项目打包方法。
10.一种存储介质,其特征在于,所述存储介质上存储有计算机程序,所述计算机程序被读取并执行时,实现上述权利要求1-6任一项所述的前端项目打包方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111530241.3A CN114168188A (zh) | 2021-12-14 | 2021-12-14 | 一种前端项目打包方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111530241.3A CN114168188A (zh) | 2021-12-14 | 2021-12-14 | 一种前端项目打包方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114168188A true CN114168188A (zh) | 2022-03-11 |
Family
ID=80486570
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111530241.3A Pending CN114168188A (zh) | 2021-12-14 | 2021-12-14 | 一种前端项目打包方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114168188A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115309376A (zh) * | 2022-08-25 | 2022-11-08 | 北京泰迪熊移动科技有限公司 | 一种应用创建方法、装置、电子设备及存储介质 |
-
2021
- 2021-12-14 CN CN202111530241.3A patent/CN114168188A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115309376A (zh) * | 2022-08-25 | 2022-11-08 | 北京泰迪熊移动科技有限公司 | 一种应用创建方法、装置、电子设备及存储介质 |
CN115309376B (zh) * | 2022-08-25 | 2023-05-26 | 北京泰迪熊移动科技有限公司 | 一种应用创建方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11934811B2 (en) | Container image building using dependency container images | |
US8949788B2 (en) | Building and packaging software | |
US20150082298A1 (en) | Packaging and deploying hybrid applications | |
US20200065124A1 (en) | Shortening just-in-time code warm up time of docker containers | |
US20200249925A1 (en) | On-demand loading of dynamic scripting language code for reduced memory usage | |
CN108897547B (zh) | 一种软件自动化部署方法及装置 | |
CN107885551A (zh) | 一种服务部署方法、装置、可读介质及存储控制器 | |
US9886272B1 (en) | Transformation of a web application into a hybrid mobile application | |
CN112527415A (zh) | 小程序跨平台迁移方法、装置、设备和介质 | |
CN115658237A (zh) | 一种容器应用自动部署方法、设备、装置、设备及介质 | |
CN114168188A (zh) | 一种前端项目打包方法、装置、电子设备及存储介质 | |
CN113467790B (zh) | 软件打包方法、装置及可读存储介质 | |
US8863080B2 (en) | Maintaining a pointer's type | |
JP7131277B2 (ja) | システム移行支援装置、システム移行支援方法及びプログラム | |
CN110704025A (zh) | 编码规范工具的生成方法和装置、存储介质、电子设备 | |
US9244706B2 (en) | Command line shell command generation based on schema | |
CN113094085A (zh) | 组件集成方法、装置、计算机可读存储介质及电子设备 | |
CN114546581A (zh) | 一种无服务容器启动方法及相关设备 | |
CN114721784B (zh) | 应用运行方法、装置、电子设备及可读介质 | |
US20180373512A1 (en) | Method and device for simulating synchronous blocking in asynchronous environment, storage medium, server and terminal | |
CN112181606B (zh) | 一种容器配置更新方法、装置、系统、存储介质及电子设备 | |
CN111273940B (zh) | 将程序文件上传至代码仓库的方法及装置 | |
US11003650B2 (en) | Container-image reproduction and debugging | |
CN111722866B (zh) | 一种OpenStack代码修复方法、装置、设备及存储介质 | |
CN111273944B (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 |