离线包打包方法、装置及计算机设备与流程

文档序号:26503652发布日期:2021-09-04 06:37阅读:168来源:国知局
离线包打包方法、装置及计算机设备与流程

1.本申请涉及互联网技术领域,尤其涉及一种离线包打包方法、装置及计算机设备。


背景技术:

2.随着网络技术的发展,现在的网站信息量越来越大,一个网页上包含的图像、动画、布局、导航等等信息也极其丰富,网页的显示效果越来越动人。然而,网页在显示过程中需要加载的数据量也越来越多了。而对于网页的加载,一般都是根据用户的访问请求加载对应的网页,因此,网页包含的数据量越多,加载所需要的时间也就越长,用户等待的时间也就越长。
3.现有的解决办法通常是将一些页面数据打包成离线包,可以有效缓解该问题。然而,同一个页面资源,往往需要面向不同的终端或设备的访问,因此,如果将页面数据打包成离线包,那么则需要同时打包成适合不同的终端或版本设备的浏览器访问;随着网络页面资源的数量递增,这种离线包打包过程也会呈现出效率低下,耗时较长的问题。


技术实现要素:

4.本申请提出一种离线包打包方法、装置及计算机设备,能够解决现有技术中将同一资源数据打包成不同版本离线包的打包效率低下,耗时较长的问题。
5.首先,为实现上述目的,本申请提供一种离线包打包方法,所述方法包括:
6.获取待执行打包的目标文件集以及待执行打包的离线包版本信息,所述离线包版本信息包括第一离线包版本和第二离线包版本;根据所述第一离线包版本的打包配置信息将所述目标文件集打包成第一离线包;对所述第一离线包进行复制,得到对应的复制离线包;根据所述第二离线包版本的打包配置信息对所述复制离线包进行静态资源路径替换,得到对应的第二离线包。
7.在一个例子中,所述获取待执行打包的目标文件集,包括:获取待访问资源的原始文件集;根据预设的离线包配置文件确定所述原始文件集中待执行打包的目标文件集。
8.在一个例子中,当所述待访问资源为网页资源时,所述获取待访问资源的原始文件集,包括:获取所述待访问资源的json文件包;根据预设的index字段从所述json文件包中逐一读取出每一个资源文件,并将所有的资源文件作为原始文件集。
9.在一个例子中,所述静态资源包括html资源、js资源、css资源和图片资源中的至少一种。
10.在一个例子中,所述根据预设的离线包配置文件确定所述原始文件集中待执行打包的目标文件集,包括:获取所述离线包配置文件包括的资源文件清单;根据所述资源文件清单中的待打包文件的文件标识码从所述原始文件集中查询出对应的所有资源文件作为所述目标文件集。
11.在一个例子中,根据所述资源文件清单中的待打包文件的文件标识码从所述原始文件集中查询出对应的所有资源文件作为所述目标文件集,包括:根据预设的资源文件数
据格式对所述目标文件集中的每一个资源文件的数据项进行格式校验;将没有通过格式校验的数据项对应的资源文件从所述目标文件集中剔除。
12.在一个例子中,所述根据所述第二离线包版本的打包配置信息对所述复制离线包进行静态资源路径替换,得到对应的第二离线包,包括:获取所述复制离线包中的目标资源文件的第一路径地址,所述目标资源文件为所述复制离线包中的任一资源文件;从所述第二离线包版本的打包配置信息中查询出所述目标资源文件的第二路径地址;将所述第二路径地址替换掉所述复制离线包中的所述第一路径地址,得到第二离线包。
13.此外,为实现上述目的,本申请还提供一种离线包打包装置,所述装置包括:
14.获取模块,用于获取待执行打包的目标文件集以及待执行打包的离线包版本信息,所述离线包版本信息包括第一离线包版本和第二离线包版本;打包模块,用于根据所述第一离线包版本的打包配置信息将所述目标文件集打包成第一离线包;复制模块,用于对所述第一离线包进行复制,得到对应的复制离线包;替换模块,用于根据所述第二离线包版本的打包配置信息对所述复制离线包进行静态资源路径替换,得到对应的第二离线包。
15.进一步地,本申请还提出一种计算机设备,所述计算机设备包括存储器、处理器,所述存储器上存储有可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如上述的离线包打包方法的步骤。
16.进一步地,为实现上述目的,本申请还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序可被至少一个处理器执行,以使所述至少一个处理器执行如上述的离线包打包方法的步骤。
17.相较于现有技术,本申请所提出的离线包打包方法、装置、计算机设备及计算机可读存储介质,能够获取待执行打包的目标文件集以及待执行打包的离线包版本信息,所述离线包版本信息包括第一离线包版本和第二离线包版本;根据所述第一离线包版本的打包配置信息将所述目标文件集打包成第一离线包;对所述第一离线包进行复制,得到对应的复制离线包;根据所述第二离线包版本的打包配置信息对所述复制离线包进行静态资源路径替换,得到对应的第二离线包。通过先打包一个版本的离线包,然后根据另外的离线包版本数量进行复制,并根据另外的离线包版本的打包配置信息对复制的离线包进行静态资源路径替换,从而快速得到对应离线包版本的离线包,从而解决了将同一资源数据打包成不同版本离线包的打包效率低下,耗时较长的问题。
附图说明
18.图1是本申请一实施例的应用环境示意图;
19.图2是本申请离线包打包方法一具体实施例的流程示意图;
20.图3是本申请一示例性例子离线包打包的流程效果图;
21.图4是本申请离线包打包装置一实施例的程序模块示意图;
22.图5是本申请计算机设备一可选的硬件架构的示意图。
具体实施方式
23.为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不
用于限定本申请。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
24.需要说明的是,在本申请中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本申请要求的保护范围之内。
25.图1是本申请一实施例的应用环境示意图。参阅图1所示,所述计算机设备1与多个用户端10连接。任一用户端10均可以连接并访问所述计算机设备1上的数据,比如通过访问app页面或者网页的方式访问所述计算机设备1上的数据。而所述计算机设备1则可以通过将数据资源打包成离线包,然后发送至用户端10,以提供给用户端10快速地进行数据页面显示。其中,对于不同版本或不同系统的终端设备的用户端10,所述计算机设备1则需要将同一份数据资源打包成不同版本的离线包,然后发送至对应的用户端10存储。
26.比如,所述计算机设备1需要打包两个版本的离线包,那么,所述计算机设备1能够获取待执行打包的目标文件集以及待执行打包的离线包版本信息,所述离线包版本信息包括第一离线包版本和第二离线包版本;根据所述第一离线包版本的打包配置信息将所述目标文件集打包成第一离线包;对所述第一离线包进行复制,得到对应的复制离线包;根据所述第二离线包版本的打包配置信息对所述复制离线包进行静态资源路径替换,得到对应的第二离线包。在本实施例中,所述计算机设备1可作为手机、平板、便携设备、pc机或者服务器等。
27.当然,在其他实施例中,所述计算机设备1也可以作为一个功能单元,附加到数据服务器(图1未示出)上,然后协助数据服务器执行离线包打包,数据服务器与所有的用户端10连接,并将所述计算机设备1打包好的离线包同步值各个用户端10。
28.实施例一
29.图2是本申请离线包打包方法一实施例的流程示意图。可以理解,本方法实施例中的流程图不用于对执行步骤的顺序进行限定。下面以计算机设备1为执行主体进行示例性描述。
30.如图2所示,所述离线包打包方法可以包括步骤s200~s206。
31.步骤s200,获取待执行打包的目标文件集以及待执行打包的离线包版本信息,所述离线包版本信息包括第一离线包版本和第二离线包版本。
32.具体的,所述计算机设备1在执行离线包打包之前,需要获取到待执行打包的目标文件集,以及待执行打包的离线包版本信息。所述离线包版本信息包括将离线包打包成的多个版本,比如适用于h5页面的离线包,以及适用于ios系统的移动终端的离线包、适用于andrio系统的移动终端的离线包,等等。在本实施例中,以所述离线包版本信息包括两个离线包版本,即第一离线包版本和第二离线包版本为例来进行说明,而实际应用中,所述离线包版本信息中包括的离线包版本数量不做限制。
33.在本实施例中,所述计算机设备1获取待执行打包的目标文件集,包括:获取待访问资源的原始文件集;根据预设的离线包配置文件确定所述原始文件集中待执行打包的目
标文件集。例如,由于待访问资源可能包括的数据量形式多样,其中有些资源的数据格式并不适合以离线包的形式存储和访问,那么,所述计算机设备1则需要从所述待访问资源对应的原始文件集中筛选出适于以离线包的形式访问的目标文件集。
34.例如,当所述待访问资源为网页资源时,所述获取待访问资源的原始文件集,包括:获取所述待访问资源的json文件包;根据预设的index字段从所述json文件包中逐一读取出每一个资源文件,并将所有的资源文件作为原始文件集。其中,所述静态资源包括html资源、js资源、css资源和图片资源中的至少一种。具体的,由于一个网页页面,一般都会包括多种静态资源,比如:html,用于显示网页结构;css,用于显示层叠样式表;js,用于实现执行脚本的环境;以及图片等等。
35.在一示例性例子中,所述计算机设备1根据预设的离线包配置文件确定所述原始文件集中待执行打包的目标文件集,包括:获取所述离线包配置文件包括的资源文件清单;根据所述资源文件清单中的待打包文件的文件标识码从所述原始文件集中查询出对应的所有资源文件作为所述目标文件集。
36.例如,由于node.s脚本中的fs(file system,文件系统)模块使能够以一种模仿标准posix函数的方式与大多数的文件系统进行交互,因此,所述计算机设备1可以通过node.s中的fs模块的查询技术,根据所述资源文件清单中的待打包文件的文件标识码从所述原始文件集中查询出对应的所有资源文件作为所述目标文件集。其中,文件标识码包括每一个文件的pid,也就是该文件在系统注册过程中标记的唯一标识码。
37.另外,所述计算机设备1从所述原始文件集中筛选出所述目标文件集的过程,还包括:根据预设的资源文件数据格式对所述目标文件集中的每一个资源文件的数据项进行格式校验;将没有通过格式校验的数据项对应的资源文件从所述目标文件集中剔除。
38.例如,所述计算机设备1通过node.s中的fs模块的查询技术根据所述资源文件清单中的待打包文件的文件标识码从所述原始文件集中查询出对应的所有资源文件,然后,则会根据预设的资源文件数据格式对查询出的所有资源文件的数据项进行格式校验。其中,资源文件的数据项,可以理解为资源文件中的资源数据,比如,资源文件的数据项为网络访问地址,那么则会根据预设的网络访问地址对该资源文件的数据项进行校验。当校验通过,则说明该资源文件的数据项格式正确,那么,所述计算机设备1则认为后续可以对该资源文件执行离线包打包操作;否则,不将该资源文件作为离线包打包对象。比如,所述计算机设备1通过node.s脚本的fs模块检测目标文件集中的每个文件中是否存在offline.json的配置文件(即是否存在适用于打包成离线包的配置文件);如果存在,则进一步对该文件的数据向配置项进行校验,校验通过则开始对该文件执行离线包打包。
39.步骤s202,根据所述第一离线包版本的打包配置信息将所述目标文件集打包成第一离线包。
40.具体的,所述计算机设备1根据待访问资源对应的所述原始文件集从抽取到了能够执行离线包打包的所述目标文件集之后,则会进一步根据所述第一离线包版本的打包配置信息将所述目标文件集打包成第一离线包。其中,所述计算机设备1执行离线包打包过程,包括:将所述目标文件集中的同类型的所有文件整合成文件压缩包。
41.例如,当所述目标文件集中包括多个网页的网页数据时,由于每一个网页的网页数据都包括页面框架代码数据,html资源数据,js资源数据,css资源数据和图片资源数据;
那么,所述计算机设备1则会分别将页面框架代码数据,html资源数据,js资源数据,css资源数据和图片资源数据对应的所有文件打包成一个对应的子压缩包文件,然后,所有子压缩包文件合成一个离线包。
42.在一示例性例子中,所述计算机设备1通过npm脚本执行打包,该脚本会读取待访问资源的package.json文件,从入口开始梳理文件脉络,分别将不同类型的文件聚合,并打包成一个整体的文件压缩包。
43.步骤s204,对所述第一离线包进行复制,得到对应的复制离线包。
44.步骤s206,根据所述第二离线包版本的打包配置信息对所述复制离线包进行静态资源路径替换,得到对应的第二离线包。
45.具体的,所述计算机设备1根据所述第一离线包版本的打包配置信息将所述目标文件集打包成第一离线包之后,则会进一步对所述第一离线包执行复制,得到对应的复制离线包。然后,所述计算机设备1对所述复制离线包中的静态资源路径执行简单替换,则可以快速获得所述第二离线包版本对应的第二离线包。
46.在本实施例中,所述计算机设备1根据所述第二离线包版本的打包配置信息对所述复制离线包进行静态资源路径替换,得到对应的第二离线包,包括:获取所述复制离线包中的目标资源文件的第一路径地址,所述目标资源文件为所述复制离线包中的任一资源文件;从所述第二离线包版本的打包配置信息中查询出所述目标资源文件的第二路径地址;将所述第二路径地址替换掉所述复制离线包中的所述第一路径地址,得到第二离线包。
47.例如,所述计算机设备1通过使用node.s的replace

in

file模块,针对复制离线包的文件夹,遍历出其中的静态资源访问路径,如js资源、css资源、html资源里面涉及到的相对路径,分别替换成第二离线包版本的打包配置信息中对于js资源、css资源、html资源预设的绝对路径地址。
48.其中,由于所述离线包版本信息中仅包括第一离线包版本和第二离线包版本,因此,所述计算机设备1仅需要将所述第一离线包复制一份;若所述离线包版本信息中包括多个离线包版本,那么所述计算机设备1需要复制出与离线包版本数量一致的多个复制离线包;然后分别根据不同的离线包版本的打包配置信息将对应的复制离线包中的静态资源路径执行替换,从而得到对应的离线包。
49.如图3所示,图3是本申请一示例性例子离线包打包的流程效果图。
50.在本实施例中,所述计算机设备1依次执行以下流程:接收用户触发的打包指令,并执行打包指令;根据打包指令对目标文件集打包,输出离线包;检测离线包版本信息;根据离线包版本信息的版本数量复制离线包;分别遍历复制的离线包,并执行静态资源的路径地址替换,即,根据离线包版本信息中的打包配置信息将复制离线包的静态资源的相对路径地址替换成绝对路径地址;输出多个离线包版本的离线包;完成打包。
51.综上所述,本实施例所提出的离线包打包方法能够获取待执行打包的目标文件集以及待执行打包的离线包版本信息,所述离线包版本信息包括第一离线包版本和第二离线包版本;根据所述第一离线包版本的打包配置信息将所述目标文件集打包成第一离线包;对所述第一离线包进行复制,得到对应的复制离线包;根据所述第二离线包版本的打包配置信息对所述复制离线包进行静态资源路径替换,得到对应的第二离线包。通过先打包一个版本的离线包,然后根据另外的离线包版本数量进行复制,并根据另外的离线包版本的
打包配置信息对复制的离线包进行静态资源路径替换,从而快速得到对应离线包版本的离线包,从而解决了将同一资源数据打包成不同版本离线包的打包效率低下,耗时较长的问题。
52.实施例二
53.图4示意性示出了根据本申请实施例二的离线包打包装置的框图,该离线包打包装置可以被分割成一个或多个程序模块,一个或者多个程序模块被存储于存储介质中,并由一个或多个处理器所执行,以完成本申请实施例。本申请实施例所称的程序模块是指能够完成特定功能的一系列计算机程序指令段,以下描述将具体介绍本实施例中各程序模块的功能。
54.如图4所示,该离线包打包装置400可以包括获取模块410、打包模块420、复制模块430和替换模块440,其中:
55.获取模块410,用于获取待执行打包的目标文件集以及待执行打包的离线包版本信息,所述离线包版本信息包括第一离线包版本和第二离线包版本。
56.打包模块420,用于根据所述第一离线包版本的打包配置信息将所述目标文件集打包成第一离线包。
57.复制模块430,用于对所述第一离线包进行复制,得到对应的复制离线包。
58.替换模块440,用于根据所述第二离线包版本的打包配置信息对所述复制离线包进行静态资源路径替换,得到对应的第二离线包。
59.在示例性的实施例中,获取模块410,还用于:获取待访问资源的原始文件集;根据预设的离线包配置文件确定所述原始文件集中待执行打包的目标文件集。
60.在示例性的实施例中,当所述待访问资源为网页资源时,获取模块410,还用于:获取所述待访问资源的json文件包;根据预设的index字段从所述json文件包中逐一读取出每一个资源文件,并将所有的资源文件作为原始文件集。所述静态资源包括html资源、js资源、css资源和图片资源中的至少一种。
61.在示例性的实施例中,获取模块410,还用于:获取所述离线包配置文件包括的资源文件清单;根据所述资源文件清单中的待打包文件的文件标识码从所述原始文件集中查询出对应的所有资源文件作为所述目标文件集。以及,根据预设的资源文件数据格式对所述目标文件集中的每一个资源文件的数据项进行格式校验;将没有通过格式校验的数据项对应的资源文件从所述目标文件集中剔除。
62.在示例性的实施例中,替换模块440,还用于,获取所述复制离线包中的目标资源文件的第一路径地址,所述目标资源文件为所述复制离线包中的任一资源文件;从所述第二离线包版本的打包配置信息中查询出所述目标资源文件的第二路径地址;将所述第二路径地址替换掉所述复制离线包中的所述第一路径地址,得到第二离线包。
63.实施例三
64.图5示意性示出了根据本申请实施例三的适于实现离线包打包方法的计算机设备1的硬件架构示意图。本实施例中,计算机设备1是一种能够按照事先设定或者存储的指令,自动进行数值计算和/或信息处理的设备。例如,可以是具有网关功能的机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个服务器所组成的服务器集群)等。如图5所示,计算机设备1至少包括但不限于:可通过系统总线相互通信链接
存储器510、处理器520、网络接口530。其中:
65.存储器510至少包括一种类型的计算机可读存储介质,可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,sd或dx存储器等)、随机访问存储器(ram)、静态随机访问存储器(sram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、可编程只读存储器(prom)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器510可以是计算机设备1的内部存储模块,例如该计算机设备1的硬盘或内存。在另一些实施例中,存储器510也可以是计算机设备1的外部存储设备,例如该计算机设备1上配备的插接式硬盘,智能存储卡(smart media card,简称为smc),安全数字(secure digital,简称为sd)卡,闪存卡(flash card)等。当然,存储器510还可以既包括计算机设备1的内部存储模块也包括其外部存储设备。本实施例中,存储器510通常用于存储安装于计算机设备1的操作系统和各类应用软件,例如离线包打包方法的程序代码等。此外,存储器510还可以用于暂时地存储已经输出或者将要输出的各类数据。
66.处理器520在一些实施例中可以是中央处理器(central processing unit,简称为cpu)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器520通常用于控制计算机设备1的总体操作,例如执行与计算机设备1进行数据交互或者通信相关的控制和处理等。本实施例中,处理器520用于运行存储器510中存储的程序代码或者处理数据。
67.网络接口530可包括无线网络接口或有线网络接口,该网络接口530通常用于在计算机设备1与其他计算机设备之间建立通信链接。例如,网络接口530用于通过网络将计算机设备1与外部终端相连,在计算机设备1与外部终端之间的建立数据传输通道和通信链接等。网络可以是企业内部网(intranet)、互联网(internet)、全球移动通讯系统(global system of mobile communication,简称为gsm)、宽带码分多址(wideband code division multiple access,简称为wcdma)、4g网络、5g网络、蓝牙(bluetooth)、wi

fi等无线或有线网络。
68.需要指出的是,图5仅示出了具有部件510

530的计算机设备,但是应理解的是,并不要求实施所有示出的部件,可以替代的实施更多或者更少的部件。
69.在本实施例中,存储于存储器510中的离线包打包方法的程序代码还可以被分割为一个或者多个程序模块,并由一个或多个处理器(本实施例为处理器520)所执行,以完成本申请实施例。
70.实施例四
71.本实施例还提供一种计算机可读存储介质,计算机可读存储介质其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
72.获取待执行打包的目标文件集以及待执行打包的离线包版本信息,所述离线包版本信息包括第一离线包版本和第二离线包版本;根据所述第一离线包版本的打包配置信息将所述目标文件集打包成第一离线包;对所述第一离线包进行复制,得到对应的复制离线包;根据所述第二离线包版本的打包配置信息对所述复制离线包进行静态资源路径替换,得到对应的第二离线包。
73.本实施例中,计算机可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,sd或dx存储器等)、随机访问存储器(ram)、静态随机访问存储器(sram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、可编程只读存储器(prom)、磁性存储器、磁盘、光盘
等。在一些实施例中,计算机可读存储介质可以是计算机设备的内部存储单元,例如该计算机设备的硬盘或内存。在另一些实施例中,计算机可读存储介质也可以是计算机设备的外部存储设备,例如该计算机设备上配备的插接式硬盘,智能存储卡(smart media card,简称为smc),安全数字(secure digital,简称为sd)卡,闪存卡(flash card)等。当然,计算机可读存储介质还可以既包括计算机设备的内部存储单元也包括其外部存储设备。本实施例中,计算机可读存储介质通常用于存储安装于计算机设备的操作系统和各类应用软件,例如实施例中离线包打包方法的程序代码等。此外,计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的各类数据。
74.显然,本领域的技术人员应该明白,上述的本申请实施例的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本申请实施例不限制于任何特定的硬件和软件结合。
75.以上仅为本申请实施例的优选实施例,并非因此限制本申请实施例的专利范围,凡是利用本申请实施例说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请实施例的专利保护范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1