一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

项目打包方法、装置、计算机设备和存储介质与流程

2022-04-30 16:10:22 来源:中国专利 TAG:


1.本技术涉及人工智能、数据处理领域,尤其涉及一种项目打包方法、装置、计算机设备和存储介质。


背景技术:

2.webpack打包工具是一种流行的前端项目构建工具,提供了模块化支持、代码压缩混淆、解决js兼容问题以及性能优化等特性,提高了开发效率和项目的可维护性。在项目构建过程中,webpack打包工具通常用于对项目的代码文件和第三方库的依赖包进行打包,生成项目构建压缩包。但随着项目规模的增长,在每次构建项目时,需要打包更多的第三方库的依赖包,导致项目构建的等待时间变得越来越长,降低了项目构建的效率。
3.因此,如何提高项目构建的效率成为亟需解决的问题。


技术实现要素:

4.本技术提供了一种项目打包方法、装置、计算机设备和存储介质,通过对第三方库的依赖包单独打包,并根据依赖资源包的远程加载信息对项目中的业务代码文件进行打包,实现通过模块联邦功能使得项目构建压缩包在运行时可以加载依赖资源包,避免每次构建项目都要进行依赖包打包,极大缩减项目打包的等待时间,提高了项目构建的效率。
5.第一方面,本技术提供了一种项目打包方法,所述方法包括:
6.确定待打包的目标项目,并确定是否存在所述目标项目对应的第三方库的依赖资源包;
7.若不存在所述依赖资源包,则调用webpack打包器对所述第三方库的依赖包进行打包,获得所述依赖资源包;
8.确定所述依赖资源包对应的远程加载信息;
9.调用所述webpack打包器基于所述远程加载信息对所述目标项目中的业务代码文件进行打包,获得所述目标项目对应的项目构建压缩包,所述项目构建压缩包在运行时加载所述依赖资源包。
10.第二方面,本技术还提供了一种项目打包装置,所述装置包括:
11.资源包判断模块,用于确定待打包的目标项目,并确定是否存在所述目标项目对应的第三方库的依赖资源包;
12.第一打包模块,用于若不存在所述依赖资源包,则调用webpack打包器对所述第三方库的依赖包进行打包,获得所述依赖资源包;
13.远程加载信息确定模块,用于确定所述依赖资源包对应的远程加载信息;
14.第二打包模块,用于调用所述webpack打包器基于所述远程加载信息对所述目标项目中的业务代码文件进行打包,获得所述目标项目对应的项目构建压缩包,所述项目构建压缩包在运行时加载所述依赖资源包。
15.第三方面,本技术还提供了一种计算机设备,所述计算机设备包括存储器和处理
器;
16.所述存储器,用于存储计算机程序;
17.所述处理器,用于执行所述计算机程序并在执行所述计算机程序时实现如上述的项目打包方法。
18.第四方面,本技术还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时使所述处理器实现如上述的项目打包方法。
19.本技术公开了一种项目打包方法、装置、计算机设备和存储介质,通过确定待打包的目标项目,并确定是否存在目标项目对应的第三方库的依赖资源包,可以实现在存在依赖资源包时,无需对第三方库的依赖包进行打包,节省了打包时间;通过在确定不存在依赖资源包时,调用webpack打包器对第三方库的依赖包进行打包,获得依赖资源包,实现通过webpack打包器中的模块联邦功能对依赖包进行单独打包;通过确定依赖资源包对应的远程加载信息,可以在对业务代码文件进行打包时,将远程加载信息添加至项目构建压缩包中;通过调用webpack打包器基于远程加载信息对目标项目中的业务代码文件进行打包,获得目标项目对应的项目构建压缩包,可以实现通过模块联邦功能使得项目构建压缩包在运行时加载依赖资源包,避免每次构建项目都要进行依赖包打包,极大缩减项目打包的等待时间,提高了项目构建的效率。
附图说明
20.为了更清楚地说明本技术实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
21.图1是本技术实施例提供的一种项目打包方法的示意性流程图;
22.图2是本技术实施例提供的一种构建项目的示意性流程图;
23.图3是本技术实施例提供的一种对依赖包进行打包的示意图;
24.图4是本技术实施例提供的一种业务代码文件进行打包的子步骤的示意性流程图;
25.图5是本技术实施例提供的一种对业务代码文件进行打包的示意图;
26.图6是本技术实施例提供的一种项目打包装置的示意性框图;
27.图7是本技术实施例提供的一种计算机设备的结构示意性框图。
具体实施方式
28.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
29.附图中所示的流程图仅是示例说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解、组合或部分合并,因此实际执行的顺序有可能根据实际情况改变。
30.应当理解,在此本技术说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本技术。如在本技术说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
31.还应当理解,在本技术说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
32.本技术的实施例提供了一种项目打包方法、装置、计算机设备和存储介质。其中,该项目打包方法可以应用于服务器或终端中,通过对第三方库的依赖包单独打包,并根据依赖资源包的远程加载信息对项目中的业务代码文件进行打包,实现通过模块联邦功能使得项目构建压缩包在运行时可以加载依赖资源包,避免每次构建项目都要进行依赖包打包,极大缩减项目打包的等待时间,提高了项目构建的效率。
33.其中,服务器可以是独立的服务器,也可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(content delivery network,cdn)、以及大数据和人工智能平台等基础云计算服务的云服务器。终端可以是智能手机、平板电脑、笔记本电脑和台式电脑等电子设备。
34.下面结合附图,对本技术的一些实施方式作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。
35.如图1所示,项目打包方法包括步骤s10至步骤s40。
36.步骤s10、确定待打包的目标项目,并确定是否存在所述目标项目对应的第三方库的依赖资源包。
37.需要说明的是,本技术实施例可以应用于项目开发系统中,开发人员可以通过项目开发系统对需要打包的项目进行打包,并将打包得到的项目构建压缩包部署到其它机器中。
38.示例性的,可以根据开发人员在项目开发系统上的项目选中操作,确定待打包的目标项目。然后,根据开发人员的打包指令,对目标项目进行打包。
39.需要说明的是,构建项目需要项目的业务代码文件和项目对应的第三方库的依赖包。可以理解的是,第三方库的依赖包为项目运行时调用的模块,是项目正常运行的重要组成部分。在现有技术中,每次构建项目或构建每个项目时,都需要对项目的业务代码文件和第三方库的依赖包一起打包;当第三方库的依赖包的数量过多时,导致项目构建的等待时间变得越来越长,降低了项目构建的效率。而在本技术实施例中,首先确定是否存在目标项目对应的第三方库的依赖资源包;若存在,不无需对依赖包进行打包;若不存在,则调用webpack打包器对第三方库的依赖包进行打包,获得依赖资源包,实现对依赖包进行单独打包;然后,调用webpack打包器基于依赖资源包的远程加载信息对目标项目中的业务代码文件进行打包,实现通过模块联邦功能使得项目构建压缩包在运行时可以加载依赖资源包。从而,可以避免每次构建项目都要进行依赖包打包,极大缩减项目打包的等待时间,提高了项目构建的效率。
40.其中,webpack是一个用于现代javascript应用程序的静态模块打包工具;当webpack处理应用程序时,它会在内部从一个或多个入口点构建一个依赖图(dependency graph),然后将项目中所需的每一个模块组合成一个或多个bundles,它们均为静态资源,用于展示内容。在本技术实施例中,可以通过对webpack模块打包器提供的模块联邦功能
(module federation,mf)的打包插件进行参数配置,实现根据mf打包插件对项目中的第三方库的依赖包进行单独打包,并通过mf打包插件实现项目构建压缩包在运行时加载依赖资源包。
41.请参阅图2,图2是本技术实施例提供的一种构建项目的示意性流程图。如图2所示,可以查询本地数据库或本地磁盘,确定是否存在目标项目对应的第三方库的依赖资源包。若不存在依赖资源包,则对第三方库的依赖包进行打包,获得依赖资源包。若存在依赖资源包,则判断依赖资源包中的依赖包是否发生更新;若依赖资源包中的依赖包发生更新,则对依赖包进行打包,获得依赖资源包;若依赖资源包中的依赖包未发生更新,则无需对依赖包进行打包。在获得依赖资源包之后,获取依赖资源包对应的远程加载信息,根据远程加载信息对业务代码文件进行打包,得到项目构建压缩包。
42.通过确定待打包的目标项目,并确定是否存在目标项目对应的第三方库的依赖资源包,可以实现在存在依赖资源包时,无需对第三方库的依赖包进行打包,节省了打包时间。
43.步骤s20、若不存在所述依赖资源包,则调用webpack打包器对所述第三方库的依赖包进行打包,获得所述依赖资源包。
44.示例性的,若不存在依赖资源包,则调用webpack打包器对第三方库的依赖包进行打包,获得依赖资源包。
45.通过在确定不存在依赖资源包时,调用webpack打包器对第三方库的依赖包进行打包,获得依赖资源包,实现通过webpack打包器中的模块联邦功能对依赖包进行单独打包。
46.在一些实施例中,调用webpack打包器对第三方库的依赖包进行打包,获得依赖资源包之前,还可以包括:获取第三方库对应的依赖信息,并根据依赖信息,确定第三方库对应的至少一个依赖包。
47.示例性的,依赖信息可以包括至少一个依赖项与每个依赖项对应的版本信息。其中,依赖信息由目标项目中的依赖参数定义,依赖参数可以表示为dependencies参数。例如,在获取第三方库对应的依赖信息时,可以读取目标项目的模块说明文件,获得模块说明文件中的依赖参数。其中,模块说明文件可以是package.json文件。
48.例如,依赖项与每个依赖项对应的版本信息,如下所示:
49."antd":"^4.16.6","axios":"^0.19.0","braft-editor":"^2.3.8"。其中,“antd”表示依赖项,“^4.16.6”表示依赖项“antd”对应的版本信息。
50.在一些实施例中,根据依赖信息,确定第三方库对应的至少一个依赖包,可以包括:根据每个依赖项与每个依赖项对应的版本信息进行安装包查询,将每个依赖项对应查询得到的安装包确定为依赖包。
51.例如,根据依赖项“antd”与依赖项“antd”对应的版本信息“^4.16.6”进行安装包查询,将查询得到的目标安装包确定为依赖项“antd”对应的依赖包。其中,依赖包可以是js文件。例如,依赖项“antd”对应的依赖包为3451.js文件。
52.通过获取第三方库对应的依赖信息,可以根据依赖信息中的每个依赖项与每个依赖项对应的版本信息进行安装包查询,获得第三方库对应的至少一个依赖包。
53.在一些实施例中,调用webpack打包器对第三方库的依赖包进行打包,获得依赖资
源包,可以包括:根据依赖信息构建webpack打包器的第一打包插件,调用webpack打包器基于第一打包插件对依赖包进行打包,获得依赖资源包。
54.需要说明的是,构建webpack打包器的第一打包插件是指根据依赖信息对webpack打包器自带的打包插件进行配置,得到第一打包插件。其中,打包插件可以携带参数/选项,可以对打包插件中的参数/选项进行配置。需要说明的是,打包插件是javascript文件,文件内导出了一个webpack配置的对象。在对依赖包打包时,webpack打包器会根据打包插件定义的属性对依赖包进行打包处理。
55.在一些实施方式中,根据依赖信息构建webpack打包器的第一打包插件,可以包括:获取webpack打包器的初始打包插件;调用预设的插件配置函数,获取第三方库对应的传入参数,并根据传入参数对初始打包插件进行参数配置,将参数配置后的初始打包插件确定为第一打包插件。
56.示例性的,插件配置函数可以是webpack.container.modulefederationplugin函数。传入参数可以包括name、filename、exposes等参数。其中,name表示输出的依赖资源包的名称;filename表示入口文件的名称;exposes表示第三方库作为共享模块时,输出被消费的属性。
57.示例性的,在根据传入参数对初始打包插件进行参数配置时,可以将传入参数添加至初始打包插件中,或者根据传入参数对初始打包插件中的参数选项进行修改等等。例如,可以调用webpack.container.modulefederationplugin函数,获取第三方库对应的传入参数,并将传入参数添加至初始打包插件中,得到第一打包插件。其中,第一打包插件可以是lib.config.js文件;第一打包插件还可以包括入口、模式以及输出等参数选项。
58.在一些实施例中,调用webpack打包器基于第一打包插件对依赖包进行打包,获得依赖资源包之前,还可以包括:确定第三方库对应的入口文件。
59.示例性的,可以新增第三方库对应的空文件,并配置空文件的输出名称,获得第三方库对应的入口文件。例如,入口文件可以是remoteentry.js文件。
60.需要说明的是,入口文件用于确定入口起点。可以理解的是,入口起点(entry point)指示webpack打包器在打包时应该使用哪个依赖包来作为构建其内部依赖图(dependency graph)的开始;进入入口起点后,webpack打包器会找出有哪些依赖包和库是入口起点依赖的。
61.通过确定入口文件,可以实现在对依赖包打包时,将入口文件作为构建依赖资源包的入口起点。
62.在一些实施例中,调用webpack打包器基于第一打包插件对依赖包进行打包,获得依赖资源包,可以包括:调用webpack打包器基于第一打包插件对全部依赖包与入口文件进行打包,获得依赖资源包。
63.请参见图3,图3是本技术实施例提供的一种对依赖包进行打包的示意图。如图3所示,在打包时,可以调用webpack打包器基于第一打包插件对全部依赖包与入口文件进行打包,得到依赖资源包。例如,对依赖包1、依赖包2、依赖包3、依赖包4以及入口文件进行打包。其中,依赖资源包可以包括入口文件、各个依赖包以及各个依赖包之间的依赖关系。
64.通过确定第三方库对应的入口文件,并调用webpack打包器基于第一打包插件对全部依赖包与入口文件进行打包,可以实现通过入口文件加载依赖资源包中的各依赖包。
65.在一些实施例中,获得第三方库对应的依赖资源包之后,还可以包括:对依赖资源包进行部署,将依赖资源包存储至目标项目对应的静态资源文件夹,或将依赖资源包存储至文件服务器。
66.示例性的,静态资源文件夹可以是公共文件夹。例如,可以启动webpack自带的devserver服务或使用http-server、serve包等启动http服务,将依赖资源包存储至静态资源文件夹。
67.示例性的,文件服务器可以是cdn(content delivery networks,内容分发网络)文件服务器,也可以是其它服务器。
68.为进一步保证上述依赖资源包的私密和安全性,上述依赖资源包可以存储于一区块链的节点中。
69.步骤s30、确定所述依赖资源包对应的远程加载信息。
70.示例性的,可以根据依赖资源包的存储位置,确定依赖资源包对应的远程加载信息。
71.示例性的,远程加载信息可以包括依赖资源包的名称与远程路径。其中,远程路径是指依赖资源包的存储路径。例如,依赖资源包存储在静态资源文件夹的路径,或者依赖资源包存储在文件服务器的路径。
72.需要说明的是,远程加载信息用于构建webpack打包器的第二打包插件,以使第二打包插件打包得到的项目构建压缩包具有远程模块功能,可以加载依赖资源包。
73.通过确定依赖资源包对应的远程加载信息,可以在对业务代码文件进行打包时,将远程加载信息添加至项目构建压缩包中。
74.步骤s40、调用所述webpack打包器基于所述远程加载信息对所述目标项目中的业务代码文件进行打包,获得所述目标项目对应的项目构建压缩包,所述项目构建压缩包在运行时加载所述依赖资源包。
75.请参阅图4,图4是本技术实施例提供的一种业务代码文件进行打包的子步骤的示意性流程图,具体可以包括以下步骤s401和步骤s402。
76.步骤s401、根据所述远程加载信息构建所述webpack打包器的第二打包插件。
77.在一些实施例中,根据远程加载信息构建webpack打包器的第二打包插件,可以包括:获取webpack打包器的初始打包插件;基于预设的参数配置策略,根据远程加载信息对初始打包插件进行参数配置,获得第二打包插件。
78.其中,参数配置策略可以包括:将远程加载信息添加至初始打包插件;将初始打包插件中的依赖包对应的本地导入方式修改为远程导入方式;将初始打包插件中的入口文件的加载方式修改为异步加载方式。
79.需要说明的是,在对初始打包插件进行参数配置时,除了根据远程加载信息进行参数配置,还可以配置初始打包插件中的其它参数选项。例如,配置依赖包的导入方式、配置入口文件的加载方式等等。
80.示例性的,在将远程加载信息添加至初始打包插件时,可以将依赖资源包的名称与远程路径添加至初始打包插件中。其中,具体的添加方式,在此不作限定。
81.需要说明的是,配置依赖包的导入方式,可以将本地导入方式的本地导入语句转换远程导入语句。
82.在一些实施方式中,将初始打包插件中的依赖包对应的本地导入方式修改为远程导入方式时,可以包括:调用预设的转换插件,将初始打包插件中的本地导入方式对应的本地导入语句转换成远程导入语句,其中,远程导入语句包括依赖资源包的名称。
83.示例性的,转换插件可以是babel插件,相当于转换器。例如,可以通过babel插件将本地导入语句“import react from

react
’”
转换成远程导入语句“import react from

remotelib@react
’”
;其中,remotelib为依赖资源包的名称。
84.示例性的,在将初始打包插件中的入口文件的加载方式修改为异步加载方式时,可以通过import()函数实现。例如,可以将初始打包插件中的代码“import

./index.ts
’”
修改为“import(./index.ts)”。
85.通过基于预设的参数配置策略,根据远程加载信息构建webpack打包器的第二打包插件,可以使得第二打包插件具有远程加载功能,进而在基于第二打包插件进行业务代码文件打包,得到的项目构建压缩包也具有远程加载功能,可以在运行时加载依赖资源包。
86.步骤s402、调用所述webpack打包器基于所述第二打包插件对所述业务代码文件进行打包,获得所述项目构建压缩包。
87.请参阅图5,图5是本技术实施例提供的一种对业务代码文件进行打包的示意图。如图5所示,可以执行打包指令,调用webpack打包器基于第二打包插件对目标项目中的业务代码文件进行打包,获得目标项目对应的项目构建压缩包。其中,打包指令可以是webpack.run。
88.在本技术实施例中,通过基于第二打包插件对业务代码文件进行打包,获得项目构建压缩包可以在运行时加载依赖资源包。
89.其中,项目构建压缩包在运行时,可以通过入口文件作为入口起点,加载依赖资源包中的各依赖包。例如,项目构建压缩包在运行时,加载并执行项目构建压缩包中的入口文件,例如执行index.js时,将会请求并执行依赖资源包中的入口文件,例如remoteentry.js文件。在remoteentry.js文件执行时,将在全局window下生成命名空间对象,例如remotelib对象,同时并发请求加载并执行各依赖包;各依赖包加载并执行完成后,可以在remotelib对象上注册以依赖资源包的名称为命名的模块对象,以供后续调用,例如使用react库时,调用window.remotelib.react对象即可。
90.通过调用webpack打包器基于第二打包插件进行业务代码文件打包,可以使得项目构建压缩包可以在运行时加载依赖资源包,避免每次构建项目都要进行依赖包打包,极大缩减项目打包的等待时间,提高了项目构建的效率。
91.上述实施例提供的项目打包方法,通过确定待打包的目标项目,并确定是否存在目标项目对应的第三方库的依赖资源包,可以实现在存在依赖资源包时,无需对第三方库的依赖包进行打包,节省了打包时间;通过在确定不存在依赖资源包时,调用webpack打包器对第三方库的依赖包进行打包,获得依赖资源包,实现通过webpack打包器中的模块联邦功能对依赖包进行单独打包;通过确定入口文件,可以实现在对依赖包打包时,将入口文件作为构建依赖资源包的入口起点;通过确定依赖资源包对应的远程加载信息,可以在对业务代码文件进行打包时,将远程加载信息添加至项目构建压缩包中;通过基于预设的参数配置策略,根据远程加载信息构建webpack打包器的第二打包插件,可以使得第二打包插件具有远程加载功能,进而在基于第二打包插件进行业务代码文件打包,得到的项目构建压
缩包也具有远程加载功能,可以在运行时加载依赖资源包;通过调用webpack打包器基于第二打包插件进行业务代码文件打包,可以使得项目构建压缩包可以在运行时加载依赖资源包,避免每次构建项目都要进行依赖包打包,极大缩减项目打包的等待时间,提高了项目构建的效率。
92.请参阅图6,图6是本技术的实施例还提供一种项目打包装置1000的示意性框图,该项目打包装置用于执行前述的项目打包方法。其中,该项目打包装置可以配置于服务器或终端中。
93.如图6所示,该项目打包装置1000,包括:资源包判断模块1001、第一打包模块1002、远程加载信息确定模块1003和第二打包模块1004。
94.资源包判断模块1001,用于确定待打包的目标项目,并确定是否存在所述目标项目对应的第三方库的依赖资源包。
95.第一打包模块1002,用于若不存在所述依赖资源包,则调用webpack打包器对所述第三方库的依赖包进行打包,获得所述依赖资源包。
96.远程加载信息确定模块1003,用于确定所述依赖资源包对应的远程加载信息。
97.第二打包模块1004,用于调用所述webpack打包器基于所述远程加载信息对所述目标项目中的业务代码文件进行打包,获得所述目标项目对应的项目构建压缩包,所述项目构建压缩包在运行时加载所述依赖资源包。
98.需要说明的是,所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的装置和各模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
99.上述的装置可以实现为一种计算机程序的形式,该计算机程序可以在如图7所示的计算机设备上运行。
100.请参阅图7图7是本技术实施例提供的一种计算机设备的结构示意性框图。
101.请参阅图7,该计算机设备包括通过系统总线连接的处理器和存储器,其中,存储器可以包括存储介质和内存储器。所述存储介质可以是非易失性存储介质,也可以是易失性存储介质。
102.处理器用于提供计算和控制能力,支撑整个计算机设备的运行。
103.内存储器为非易失性存储介质中的计算机程序的运行提供环境,该计算机程序被处理器执行时,可使得处理器执行任意一种项目打包方法。
104.应当理解的是,处理器可以是中央处理单元(central processing unit,cpu),该处理器还可以是其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。其中,通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
105.其中,在一个实施例中,所述处理器用于运行存储在存储器中的计算机程序,以实现如下步骤:
106.确定待打包的目标项目,并确定是否存在所述目标项目对应的第三方库的依赖资源包;若不存在所述依赖资源包,则调用webpack打包器对所述第三方库的依赖包进行打
包,获得所述依赖资源包;确定所述依赖资源包对应的远程加载信息;调用所述webpack打包器基于所述远程加载信息对所述目标项目中的业务代码文件进行打包,获得所述目标项目对应的项目构建压缩包,所述项目构建压缩包在运行时加载所述依赖资源包。
107.在一个实施例中,所述处理器在实现调用webpack打包器对所述第三方库的依赖包进行打包,获得所述依赖资源包之前,还用于实现:
108.获取所述第三方库对应的依赖信息,并根据所述依赖信息,确定所述第三方库对应的至少一个依赖包。
109.在一个实施例中,所述处理器在实现调用webpack打包器对所述第三方库的依赖包进行打包,获得所述依赖资源包时,用于实现:
110.根据所述依赖信息构建所述webpack打包器的第一打包插件,调用所述webpack打包器基于所述第一打包插件对所述依赖包进行打包,获得所述依赖资源包。
111.在一个实施例中,所述处理器在实现根据所述依赖信息构建所述webpack打包器的第一打包插件时,用于实现:
112.获取所述webpack打包器的初始打包插件;调用预设的插件配置函数,获取所述第三方库对应的传入参数,并根据所述传入参数对所述初始打包插件进行参数配置,将参数配置后的初始打包插件确定为所述第一打包插件。
113.在一个实施例中,所述处理器在实现调用所述webpack打包器基于所述第一打包插件对所述依赖包进行打包,获得所述依赖资源包之前,还用于实现:
114.确定所述第三方库对应的入口文件。
115.在一个实施例中,所述处理器在实现调用所述webpack打包器基于所述第一打包插件对所述依赖包进行打包,获得所述依赖资源包时,用于实现:
116.调用所述webpack打包器基于所述第一打包插件对全部所述依赖包与所述入口文件进行打包,获得所述依赖资源包。
117.在一个实施例中,所述处理器在实现调用所述webpack打包器基于所述远程加载信息对所述目标项目中的业务代码文件进行打包,获得所述目标项目对应的项目构建压缩包时,用于实现:
118.根据所述远程加载信息构建所述webpack打包器的第二打包插件;调用所述webpack打包器基于所述第二打包插件对所述业务代码文件进行打包,获得所述项目构建压缩包。
119.在一个实施例中,所述处理器在实现根据所述远程加载信息构建所述webpack打包器的第二打包插件时,用于实现:
120.获取所述webpack打包器的初始打包插件;基于预设的参数配置策略,根据所述远程加载信息对所述初始打包插件进行参数配置,获得所述第二打包插件;所述参数配置策略包括:将所述远程加载信息添加至所述初始打包插件;将所述初始打包插件中的依赖包对应的本地导入方式修改为远程导入方式;将所述初始打包插件中的入口文件的加载方式修改为异步加载方式。
121.在一个实施例中,所述处理器在实现将所述初始打包插件中的依赖包对应的本地导入方式修改为远程导入方式时,用于实现:
122.调用预设的转换插件,将所述初始打包插件中的本地导入方式对应的本地导入语
句转换成远程导入语句,其中,所述远程导入语句包括所述依赖资源包的名称。
123.本技术的实施例中还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序中包括程序指令,所述处理器执行所述程序指令,实现本技术实施例提供的任一项项目打包方法。
124.例如,该程序被处理器加载,可以执行如下步骤:
125.确定待打包的目标项目,并确定是否存在所述目标项目对应的第三方库的依赖资源包;若不存在所述依赖资源包,则调用webpack打包器对所述第三方库的依赖包进行打包,获得所述依赖资源包;确定所述依赖资源包对应的远程加载信息;调用所述webpack打包器基于所述远程加载信息对所述目标项目中的业务代码文件进行打包,获得所述目标项目对应的项目构建压缩包,所述项目构建压缩包在运行时加载所述依赖资源包。
126.其中,所述计算机可读存储介质可以是前述实施例所述的计算机设备的内部存储单元,例如所述计算机设备的硬盘或内存。所述计算机可读存储介质也可以是所述计算机设备的外部存储设备,例如所述计算机设备上配备的插接式硬盘,智能存储卡(smart media card,smc),安全数字卡(secure digital card,sd card),闪存卡(flash card)等。
127.进一步地,所述计算机可读存储介质可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序等;存储数据区可存储根据区块链节点的使用所创建的数据等。
128.本技术所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
129.以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以权利要求的保护范围为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献