CN114443053A - 一种目标应用程序的打包方法、装置及电子设备 - Google Patents

一种目标应用程序的打包方法、装置及电子设备 Download PDF

Info

Publication number
CN114443053A
CN114443053A CN202210088672.7A CN202210088672A CN114443053A CN 114443053 A CN114443053 A CN 114443053A CN 202210088672 A CN202210088672 A CN 202210088672A CN 114443053 A CN114443053 A CN 114443053A
Authority
CN
China
Prior art keywords
component
target
file
information
target view
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
Application number
CN202210088672.7A
Other languages
English (en)
Inventor
郭子豪
何渝君
熊建军
王超
段奇
邬明罡
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hanyun Technology Co Ltd
Original Assignee
Hanyun Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hanyun Technology Co Ltd filed Critical Hanyun Technology Co Ltd
Priority to CN202210088672.7A priority Critical patent/CN114443053A/zh
Publication of CN114443053A publication Critical patent/CN114443053A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/42Syntactic analysis
    • G06F8/427Parsing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请提供了一种目标应用程序的打包方法、装置、电子设备及存储介质,打包方法包括:获取目标应用程序中的至少一个目标视图文件;针对任一目标视图文件所需的任一目标组件的组件名称,从组件目录中搜索出目标组件的组件配置文件的存储路径信息,并将目标组件的目标组件配置文件的存储路径信息写入目标视图文件中目标组件的组件名称的位置信息处,以便完成对所述目标视图文件中所述目标组件的注册;基于完成组件的注册的各个所述目标视图文件,对所述目标应用程序进行打包。本申请可以对每个目标视图文件所需组件进行单独的注册,可以在目标视图在加载时只对所使用的组件的加载,可以提升加载速度,减少注册组件的资源消耗。

Description

一种目标应用程序的打包方法、装置及电子设备
技术领域
本申请涉及程序开发技术领域,尤其是涉及一种目标应用程序的打包方法、装置、电子设备及存储介质。
背景技术
随着互联网信息技术的发展以及普及,越来越多影响和改变人们生活的应用程序被开发出来,然而,在应用程序的前端开发的过程中,在完成应用程序前端框架构建后,需要使用大量的组件来支撑应用程序开发框架的各个功能。
现有技术中,需要开发人员或程序员对所开发的应用程序所用到的所用组件进行注册,传统的在注册方式是将应用程序所需的所有功能组件首先进行全局注册,然后在全局注册完成后,再构建应用程序的界面框架,这样就导致构建完成后,后台程序在首次加载时,会加载出应用程序中的所有组件,但有些组件并不需要在当前界面中使用,因此,造成了组件资源的冗余加载,降低了加载速度,而且注册组件时开发人员需要大量的编写样板代码,导致资源的消耗。
发明内容
有鉴于此,本申请的目的在于提供一种目标应用程序的打包方法、装置、电子设备及存储介质,可以对每个目标视图文件所需组件进行单独的注册,可以在目标视图在加载时只对所使用的组件的加载,可以提升加载速度,减少注册组件的资源消耗。
本申请实施例提供了一种目标应用程序的打包方法,所述打包方法包括:
获取目标应用程序所需组件的组件目录、至少一个目标视图文件以及预设调用信息解析规则;
针对任一所述目标视图文件,依据所述预设调用信息解析规则对所述目标视图文件进行解析,得到所述目标视图文件所需的组件的组件调用信息;所述组件调用信息包括每个组件的组件名称以及每个组件名称的位置信息;
针对任一所述目标视图文件所需的任一目标组件的组件名称,从所述组件目录中搜索出所述目标组件的组件配置文件的存储路径信息,并将所述目标组件的目标组件配置文件的存储路径信息写入所述目标视图文件中所述目标组件的组件名称的位置信息处,以便完成对所述目标视图文件中所述目标组件的注册;
基于完成组件的注册的各个所述目标视图文件,对所述目标应用程序进行打包。
进一步的,根据权利要求1所述的打包方法,其特征在于,所述针对任一所述目标视图文件,依据所述预设调用信息解析规则对所述目标视图文件进行解析,得到所述目标视图文件所需的组件的组件调用信息,包括:
针对任一目标视图文件,依据所述预设调用信息解析规则中的格式转换规则对所述目标视图文件进行格式转换,得到转换后的所述目标视图文件对应的目标格式文件;
针对任一所述目标格式文件,判断任一所述目标格式文件中是否存在预设文件处理完成信息;
若任一所述目标格式文件中不存在预设文件处理完成信息,则依据所述预设调用信息解析规则中的预设调用规则公式对任一所述目标格式文件进行组件的调用信息筛选,得到所述目标视图文件所需的组件的组件调用信息。
进一步的,在所述针对任一所述目标格式文件,判断任一所述目标格式文件中是否存在预设文件处理完成信息之后,所述打包方法还包括:
若任一所述目标格式文件中存在预设文件处理完成信息,则结束对所述目标格式文件对应的目标视图文件的解析。
进一步的,所述针对任一所述目标视图文件所需的任一目标组件的组件名称,从所述组件目录中搜索出所述目标组件的目标组件配置文件的存储路径信息,包括:
针对任一目标视图文件所需的任一目标组件的组件名称,判断组件目录中是否存在与任一所述目标组件的组件名称相匹配的组件的组件名称;
若存在,则确定所述组件目录中所述组件的组件配置文件的存储路径信息为所述目标组件的目标组件配置文件的存储路径信息;
若不存在,则更新目标应用程序所述组件的组件目录,并从更新后的组件目录中搜索出所述目标组件的目标组件配置文件的存储路径信息;所述更新后的组件目录中包括所述目标组件的目标组件配置文件的存储路径信息。
进一步的,所述针对任一目标视图文件所需的任一目标组件的组件名称,判断组件目录中是否存在与任一目标组件的组件名称相匹配的组件的组件名称,包括:
将组件目录中组件的组件名称以及任一目标视图文件所需的任一目标组件的组件名称分别进行预设格式转换,生成所述组件目录中组件的标准组件名称以及任一所述目标视图文件所需的任一目标组件的标准目标组件名称;
针对任一所述目标视图文件所需的任一目标组件的标准目标组件名称,判断组件目录中是否存在与任一目标组件的所述标准目标组件名称相匹配的组件的标准组件名称。
进一步的,所述在基于完成组件的注册的各个所述目标视图文件,对所述目标应用程序进行打包之前,所述打包方法还包括:
在完成组件的注册的目标视图文件的第一指定位置处添加预设文件处理完成信息;所述预设文件处理完成信息用于表征该目标视图文件已经完成组件的注册;
在完成组件的注册的目标视图文件的第二指定位置处添加文件引入信息;所述文件引入信息包括所述组件目录中组件的标准组件名称。
本申请实施例还提供了一种目标应用程序的打包装置,所述打包装置包括:
进一步的,所述解析模块具体用于:
针对任一目标视图文件,依据所述预设调用信息解析规则中的格式转换规则对所述目标视图文件进行格式转换,得到转换后的所述目标视图文件对应的目标格式文件;
针对任一所述目标格式文件,判断任一所述目标格式文件中是否存在预设文件处理完成信息;
若任一所述目标格式文件中不存在预设文件处理完成信息,则依据所述预设调用信息解析规则中的预设调用规则公式对任一所述目标格式文件进行组件的调用信息筛选,得到所述目标视图文件所需的组件的组件调用信息;所述调用规则公式用于表征组件的调用信息的规则表达式。
本申请实施例还提供一种电子设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行如上述的打包方法的步骤。
本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如上述的打包方法的步骤。
本申请实施例提供的打包方法、装置、电子设备及存储介质,与现有技术中相比,本申请提供的实施例通过先对目标应用程序进行目标视图文件的划分,并根据任一目标视图文件的组件调用信息从配置好的组件目录中获取该目标视图文件所需的目标组件配置文件的存储路径信息,可以实现对每个目标视图文件所需组件进行单独的注册,可以在目标视图在加载时只对所使用的组件的加载,可以提升加载速度,减少注册组件的资源消耗;在提升了开发效率的同时,便于后续的开发修改与重构。
为使本申请的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本申请实施例所提供的一种目标应用程序的打包方法的流程图;
图2示出了本申请实施例所提供的另一种目标应用程序的打包方法的流程图;
图3示出了本申请实施例所提供的一种目标应用程序的打包装置的结构示意图;
图4示出了本申请实施例所提供的另一种目标应用程序的打包装置的结构示意图;
图5示出了本申请实施例所提供的一种电子设备的结构示意图。
图中:
300-打包装置;310-获取模块;320-解析模块;330-搜索模块;340-打包模块;350-第一添加模块;360-第二添加模块;500-电子设备;510-处理器;520-存储器;530-总线。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的每个其他实施例,都属于本申请保护的范围。
首先,对本申请可适用的应用场景进行介绍。经研究发现,现有技术中,需要开发人员或程序员对所开发的应用程序所用到的所用组件进行注册,传统的在注册方式是将应用程序所需的所有功能组件首先进行全局注册,然后在全局注册完成后,再构建应用程序的界面框架,这样就导致构建完成后,后台程序在首次加载时,会加载出应用程序中的所有组件,但有些组件并不需要在当前界面中使用,因此,造成了组件资源的冗余加载,降低了加载速度,而且注册组件时开发人员需要大量的编写样板代码,导致资源的消耗。
基于此,本申请实施例提供了一种目标应用程序的方法、装置、电子设备及存储介质,避免了组件资源的冗余加载,提成了加载速度,进一步提高了用户的体验感。
请参阅图1,图1为本申请实施例所提供的一种目标应程序的打包方法的流程图。所如图1中所示,本申请实施例提供的目标应程序的打包方法,所述打包方法包括以下步骤:
S101、获取目标应用程序所需组件的组件目录、至少一个目标视图文件以及预设调用信息解析规则。
该步骤中,在开发的目标应用程序时,首先需要确定目标应程序的功能定位,在此基础上,基于静态模块打包工具,比如,webpack构建目标应用程序的前端架构,根据目标应用程序的前端架构编译该目标应用程序的至少一个目标视图文件,并为该目标视图文件配置所需的组件的组件目录,并设置一个针对于任一目标视图文件预设调用信息解析规则。
这里,本申请提供的实施例相当于在原有的webpack***了一个插件,然后将配置的组件目录传入该插件中,且预设调用信息解析规则为在原有的webpack中的构建规则中***了一个新的规则,形成了对任一目标视图文件中组件的编译选择组件规则,且该预设调用信息解析规则用于对每个目标视图文件进行编码解析;目标视图文件(vue文件),为一个渐进式的脚本语言(javascript)框架;目标视图文件的组件为一个可以复用的目标视图文件实例,即,目标视图文件可以理解为目标应用程序中一界面形式进行显示的界面文件。
这里,对任一目标视图文件中所需组件的注册可以理解为在构建目标应用程序的界面框架后,将目标应用程序中该目标视图文件所需的目标组件的路径存储信息从组件目录中存储到目标组件中,这个获取并进行存储的过程相当于组件的注册过程,且组件的引用指的是将组件目录中该目标视图文件所需的目标组件的组件标准组件名称标注到目标视图文件指定指定位置处的过程。
其中,本申请提供的预设调用信息解析规则包括但不限制于具体的编码表达式为:
{include:[/\.vue$/,/\.vue\?vue/],enforce:”post”,use:[loader:LOADER];其中,include是一个计算机专业术语,一指编程语言中包含头文件命令,用于将指定头文件嵌入源文件中;二指include指令,在编程语言中包含一个静态的文件,同时解析这个文件中的JavaServer Pages(JSP)语句。
本申请提供的webpack中的构建规则包括但不限制于具体的编码表达式为;
compiler.options.module.rules;
插件是一种遵循一定规范的目标应用程序接口编写出来的程序,其只能运行在目标应用程序规定的***平台下(可能同时支持多个平台),而不能脱离指定的平台单独运行。因为插件需要调用原纯净***提供的函数库或者数据,很多应用软件都有插件,插件有无数种。例如在IE中,安装相关的插件后,WEB浏览器能够直接调用插件程序,用于处理特定类型的文件。
webpack是一个用于现代脚本语言(JavaScript,JS)应用程序的静态模块打包工具。当webpack处理应用程序时,它会在内部从一个或多个入口点构建一个依赖图(dependency graph),然后将你项目中所需的每一个模块组合成一个或多个bundles,它们均为静态资源,用于展示你的内容;其中,JS,是一种具有函数优先的轻量级,解释型或即时编译型的编程语言,虽然它是作为开发Web页面的脚本语言而出名,但是它也被用到了很多非浏览器环境中,JS为基于原型编程、多范式的动态脚本语言,并且支持面向对象、命令式、声明式、函数式编程范式;依赖图(dependency graph),是程序的一种图形表示,它是带有标记的有向多重图。程序依赖图能够表示程序的控制依赖和数据依赖关系;bundles是一种可执行文件。
S102、针对任一所述目标视图文件,依据所述预设调用信息解析规则对所述目标视图文件进行解析,得到所述目标视图文件所需的组件的组件调用信息;所述组件调用信息包括每个组件的组件名称以及每个组件名称的位置信息。
该步骤中,针对于每一个目标应用程序中的目标视图文件,预设调用信息解析规则都会对该目标视图文件进行解析,并获取到述目标视图文件所需的组件的组件调用信息,并基于所需的所有组件的组件信息,生成一个与该目标视图文件对应的组件调用列表。
这里,组件调用信息以及组件调用列表中包括每个组件的组件名称以及每个组件名称的位置信息,每个组件名称的位置信息包括但不限制于该目标视图文件解析后的代码中的每个组件名称字符串起始位置信息以及每个组件名称字符串终止位置信息。
S103、针对任一所述目标视图文件所需的任一目标组件的组件名称,从所述组件目录中搜索出所述目标组件的组件配置文件的存储路径信息,并将所述目标组件的目标组件配置文件的存储路径信息写入所述目标视图文件中所述目标组件的组件名称的位置信息处,以便完成对所述目标视图文件中所述目标组件的注册。
该步骤中,根据任一目标视图文件中任一目标组件的组件名称,从配置好的组件目录中搜索目标组件的组件配置文件的存储路径信息,并基于件名称的位置信息中的名称字符串起始位置信息以及名称字符串终止位置信息,将目标组件配置文件的存储路径信息写入任一目标视图文件中任一目标组件,然后对任一目标视图文件中组件调用列表中的除上述目标组件外的其他目标组件依次在组件目录中搜索,完成搜索到的目标组件的注册,进而完成该目标视图文件的注册。
优选的,所述针对任一所述目标视图文件所需的任一目标组件的组件名称,从所述组件目录中搜索出所述目标组件的目标组件配置文件的存储路径信息,包括:
针对任一目标视图文件所需的任一目标组件的组件名称,判断组件目录中是否存在与任一所述目标组件的组件名称相匹配的组件的组件名称。
这里,将组件目录中组件的组件名称以及任一目标视图文件所需的任一目标组件的组件名称分别进行预设格式转换,生成所述组件目录中组件的标准组件名称以及任一所述目标视图文件所需的任一目标组件的标准目标组件名称。
这里,在对件目录中组件的组件名称以及任一目标视图文件所需的任一目标组件的组件名称进行预设格式转换时,预设格式转换的具体格式包括但不限制于:将组件的组件名称以及任一目标视图文件所需的任一目标组件的组件名称的解析代码转换为camelCase的格式。
针对任一所述目标视图文件所需的任一目标组件的标准目标组件名称,判断组件目录中是否存在与任一目标组件的所述标准目标组件名称相匹配的组件的标准组件名称。
这里,在进行camelCase的预设格式转换后,判断组件目录中是否存在与任一目标组件的所述标准目标组件名称的代码相匹配的组件的标准组件名称的代码,即二者之间是否包含相同的camelCase预设格式的字符串。
若存在,则确定所述组件目录中所述组件的组件配置文件的存储路径信息为所述目标组件的目标组件配置文件的存储路径信息。
这里,若组件目录中存在与任一目标组件的所述标准目标组件名称的camelCase预设格式的字符串相同的camelCase预设格式的字符串,则确定所述组件目录中所述组件的组件配置文件的存储路径信息为所述目标组件的目标组件配置文件的存储路径信息。
若不存在,则更新目标应用程序所述组件的组件目录,并从更新后的组件目录中搜索出所述目标组件的目标组件配置文件的存储路径信息;所述更新后的组件目录中包括所述目标组件的目标组件配置文件的存储路径信息。
这里,若不存在,则分为两种情况,一种情况是组件目录中该目标应用程序所需的该组件配置错了,此时重新更新该组件目录种该组件的配置文件的存储路径即可;另一种情况是跟根据预设调用信息解析规则解析该目标视图文件,得到该组件的组件调用信息是出现了错误,重新解析下目标视图文件看是否能够解决。
S104、基于完成组件的注册的各个所述目标视图文件,对所述目标应用程序进行打包。
该步骤中,做完成目标应用程序中任一目标视图文件的所需组件的注册后,根据预设的开发框架,继续完成该目标应用程序中所有目标视图文件所需组件的注册,然后对目标应用程序进行打包,进而实现发布。
这里,发布的地方没各个类型的互联网平台,可以为移动终端、也可以是计算机,并没有特别的局限性,具体已发布的应用场景需要开发人员或程序员根据开发的实际需求进行确定和选择。
优选的,所述在基于完成组件的注册的各个所述目标视图文件,对所述目标应用程序进行打包之前,所述打包方法还包括:
在完成组件的注册的目标视图文件的第一指定位置处添加预设文件处理完成信息;所述预设文件处理完成信息用于表征该目标视图文件已经完成组件的注册。
这里,在针对任一目标视图文件的组件调用列表中的所有组件全部完成注册后,在目标视图文件的第一指定位置处添加预设文件处理完成信息;其中,第一指定位置处为开发人员或程序员在目标视图文件的代码中指定的位置。
这样,第一指定位置处包括但不限制于目标视图文件的代码的首部或尾部。
同时,预设文件处理完成信息的编码为开发人员或程序员特殊设定的字符串,包括但不限制于:“//already auto import component by hy-vue-auto-import”。
在完成组件的注册的目标视图文件的第二指定位置处添加文件引入信息;所述文件引入信息包括所述组件目录中组件的标准组件名称。
这里,针对任一目标视图文件的组件调用列表中的所有组件全部完成注册后,在目标视图文件的第二指定位置处添加文件引入信息,实现了将组件目录中组件的存储路径信息引用到目标视图文件所需的目标组件中,实现组件的引用。
其中,引入信息包括但不限制于为:import hy_auto_import_+name from“组件目录+标准组件名称”。
下面给出一个针对组件配置的具体实施例,包括以下步骤:
开发人员在webpack配置文件中引入本技术所开发的插件,注册插件并向插件传入组件的组件目录。
启动webpack构建目标应用程序的框架。
利用插件在webpack的框架构建规则中***预设调用信息解析规则,并依据预设调用信息解析规则中的格式转换规则对目标视图文件进行格式转换,得到转换后的目标视图文件对应的目标格式文件。
针对任一目标格式文件,判断任一目标格式文件中是否存在预设文件处理完成信息。
若任一目标格式文件中不存在预设文件处理完成信息,则依据预设调用信息解析规则中的正则表达式:“/_c\([\s\n\t]*['"](.+?)["']([,)])/g”解析所述目标应用程序,确定所述目标视图文件的组件调用信息,并生成组件调用列表。
将组件目录中组件的组件名称以及调用信息中涉及的任一目标视图文件所需的任一目标组件的组件名称分别进行预设格式转换,转换成camelCase格式,生成所述组件目录中组件的标准组件名称以及任一所述目标视图文件所需的任一目标组件的camelCase格式的标准目标组件名称。
针对任一所述目标视图文件所需的任一目标组件的camelCase格式的标准目标组件名称,判断组件目录中是否存在与任一目标组件的camelCase格式的标准目标组件名称相匹配的组件的标准组件名称。
若组件调用列表中不包括标组件的组件名称,则在该目标视图文件中添加预设文件处理完成信息。
若组件调用列表中包括标组件的组件名称,则根据组件调用信息中的start,end,name,将所述目标组件的目标组件配置文件的存储路径信息写入所述目标视图文件中所述目标组件的组件名称的位置信息处“_c(+_hy_auto_import_+name)”。
遍历所述组件调用列表,确定该目标视图文件全部的目标组件,并完成所述目标组件的注册。
在上述目标视图文件的第一指定位置处添加预设文件处理完成信息,以及在上述目标视图文件的第二指定位置处添加文件引入信息,文件引入信息包括所述组件目录中组件的标准组件名称,即“组件目录+标准组件名称”。
本申请实施例提供的打包方法,与现有技术中的相比,本申请提供的实施例通过先对目标应用程序进行目标视图文件的划分,并根据任一目标视图文件的组件调用信息从配置好的组件目录中获取该目标视图文件所需的目标组件配置文件的存储路径信息,可以实现对每个目标视图文件所需组件进行单独的注册,可以在目标视图在加载时只对所使用的组件的加载,可以提升加载速度,减少注册组件的资源消耗;在提升了开发效率的同时,便于后续的开发修改与重构。
请参阅图2,图2为本申请另一实施例提供的目标应程序的打包方法的流程图。如图2中所示,本申请实施例提供的标应程序的打包方法,包括以下步骤:
S201、获取目标应用程序所需组件的组件目录、至少一个目标视图文件以及预设调用信息解析规则。
S202、针对任一目标视图文件,依据所述预设调用信息解析规则中的格式转换规则对所述目标视图文件进行格式转换,得到转换后的所述目标视图文件对应的目标格式文件。
该步骤中,针对任一目标视图文件,将目标视图文件按照预设调用信息解析规则中的格式转换规则进行格式转换,得到与预设文件处理完成信息格式相同的目标格式文件。
S203、针对任一所述目标格式文件,判断任一所述目标格式文件中是否存在预设文件处理完成信息。
该步骤中,预设文件处理完成信息包括但不限制于:“//already auto importcomponent by hy-vue-auto-import”。
这里,预设文件处理完成信息用于表征该目标视图文件已经完成组件的注册,避免对目标视图文件的多次处理,造成浪费性能浪费,至此解析错误等。
S204、若任一所述目标格式文件中不存在预设文件处理完成信息,则依据所述预设调用信息解析规则中的预设调用规则公式对任一所述目标格式文件进行组件的调用信息筛选,得到所述目标视图文件所需的组件的组件调用信息;所述组件调用信息包括每个组件的组件名称以及每个组件名称的位置信息。
该步骤中,若任一所述目标格式文件中不存在预设文件处理完成信息,则说明该目标格式文件对应的目标视图文件中所需的组件未进行处理,此时,依据预设调用信息解析规则中的预设调用规则公式对任一所述目标格式文件进行组件的调用信息筛选,得到所述目标视图文件所需的组件的组件调用信息。
这里,所述预设调用信息解析规则包括但不限制于使用正则表达式,且组件的调用信息的获取方式具体为:通过调用目标格式文件的代码中的应用程序接口(ApplicationProgramming Interface,API)来获取。
其中,正则表达式,又称规则表达式,它是对代码中的字符串操作的一种逻辑公式,即用事先定义好的一些特定字符以及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。
这样,正则表达式包括但不限于具体为:“/_c\([\s\n\t]*['"](.+?)["']([,)])/g”。
优选的,若任一所述目标格式文件中存在预设文件处理完成信息,则结束对所述目标格式文件对应的目标视图文件的解析。
这里,若任一所述目标格式文件中存在预设文件处理完成信息,则说明该目标格式文件对应的目标视图文件中所需的目标组件已经注册和处理过了,则无需对目标组件进行重复的解析注册以及引用。
S205、针对任一所述目标视图文件所需的任一目标组件的组件名称,从所述组件目录中搜索出所述目标组件的组件配置文件的存储路径信息,并将所述目标组件的目标组件配置文件的存储路径信息写入所述目标视图文件中所述目标组件的组件名称的位置信息处,以便完成对所述目标视图文件中所述目标组件的注册。
S206、基于完成组件的注册的各个所述目标视图文件,对所述目标应用程序进行打包。
其中,S201和S205至S206的描述可以参照S101和S103至S104的描述,并且能达到相同的技术效果,对此不做赘述。
本申请实施例提供的目标应用程序的打包方法,与现有技术相比,本申请提供的实施例通过先对目标应用程序进行目标视图文件的划分,并根据任一目标视图文件的组件调用信息从配置好的组件目录中获取该目标视图文件所需的目标组件配置文件的存储路径信息,可以实现对每个目标视图文件所需组件进行单独的注册,可以在目标视图在加载时只对所使用的组件的加载,可以提升加载速度,减少注册组件的资源消耗;在提升了开发效率的同时,便于后续的开发修改与重构。
请参阅图3、图4,图3为本申请实施例所提供的一种目标应用程序的打包装置的结构示意图,图4为本申请实施例所提供的另一种目标应用程序的打包装置的结构示意图。如图3中所示,所述打包装置300包括:
获取模块310,用于获取目标应用程序所需组件的组件目录、至少一个目标视图文件以及预设调用信息解析规则。
解析模块320,用于针对任一所述目标视图文件,依据所述预设调用信息解析规则对所述目标视图文件进行解析,得到所述目标视图文件所需的组件的组件调用信息;所述组件调用信息包括每个组件的组件名称以及每个组件名称的位置信息。
优选的,所述解析模块320具体用于:
针对任一目标视图文件,依据所述预设调用信息解析规则中的格式转换规则对所述目标视图文件进行格式转换,得到转换后的所述目标视图文件对应的目标格式文件。
针对任一所述目标格式文件,判断任一所述目标格式文件中是否存在预设文件处理完成信息。
若任一所述目标格式文件中不存在预设文件处理完成信息,则依据所述预设调用信息解析规则中的预设调用规则公式对任一所述目标格式文件进行组件的调用信息筛选,得到所述目标视图文件所需的组件的组件调用信息。
优选的,在所述针对任一所述目标格式文件,判断任一所述目标格式文件中是否存在预设文件处理完成信息之后,所述打包方法还包括:
若任一所述目标格式文件中存在预设文件处理完成信息,则结束对所述目标格式文件对应的目标视图文件的解析。
搜索模块330,用于针对任一所述目标视图文件所需的任一目标组件的组件名称,从所述组件目录中搜索出所述目标组件的组件配置文件的存储路径信息,并将所述目标组件的组件配置文件的存储路径信息写入所述目标视图文件中所述目标组件的组件名称的位置信息处,以便完成对所述目标视图文件中所述目标组件的收集。
打包模块340,用于基于完成组件的收集的各个所述目标视图文件,对所述目标应用程序进行打包。
本申请实施例提供的目标应用程序的打包装置300,与现有技术中相比,本申请提供的实施例通过先对目标应用程序进行目标视图文件的划分,并根据任一目标视图文件的组件调用信息从配置好的组件目录中获取该目标视图文件所需的目标组件配置文件的存储路径信息,可以实现对每个目标视图文件所需组件进行单独的注册,可以在目标视图在加载时只对所使用的组件的加载,可以提升加载速度,减少注册组件的资源消耗;在提升了开发效率的同时,便于后续的开发修改与重构。
进一步的,如图4所示,所述打包装置300包括:
获取模块310,用于获取目标应用程序所需组件的组件目录、至少一个目标视图文件以及预设调用信息解析规则。
解析模块320,用于针对任一所述目标视图文件,依据所述预设调用信息解析规则对所述目标视图文件进行解析,得到所述目标视图文件所需的组件的组件调用信息;所述组件调用信息包括每个组件的组件名称以及每个组件名称的位置信息。
搜索模块330,用于针对任一所述目标视图文件所需的任一目标组件的组件名称,从所述组件目录中搜索出所述目标组件的组件配置文件的存储路径信息,并将所述目标组件的组件配置文件的存储路径信息写入所述目标视图文件中所述目标组件的组件名称的位置信息处,以便完成对所述目标视图文件中所述目标组件的收集。
优选的,所述搜索模块330具体用于:
针对任一目标视图文件所需的任一目标组件的组件名称,判断组件目录中是否存在与任一所述目标组件的组件名称相匹配的组件的组件名称。
优选的,所述针对任一目标视图文件所需的任一目标组件的组件名称,判断组件目录中是否存在与任一目标组件的组件名称相匹配的组件的组件名称,包括:
将组件目录中组件的组件名称以及任一目标视图文件所需的任一目标组件的组件名称分别进行预设格式转换,生成所述组件目录中组件的标准组件名称以及任一所述目标视图文件所需的任一目标组件的标准目标组件名称。
针对任一所述目标视图文件所需的任一目标组件的标准目标组件名称,判断组件目录中是否存在与任一目标组件的所述标准目标组件名称相匹配的组件的标准组件名称。
若存在,则确定所述组件目录中所述组件的组件配置文件的存储路径信息为所述目标组件的目标组件配置文件的存储路径信息。
若不存在,则更新目标应用程序所述组件的组件目录,并从更新后的组件目录中搜索出所述目标组件的目标组件配置文件的存储路径信息;所述更新后的组件目录中包括所述目标组件的目标组件配置文件的存储路径信息。
打包模块340,用于基于完成组件的收集的各个所述目标视图文件,对所述目标应用程序进行打包。
优选的,所述打包装置300还包括:
第一添加模块350,用于在完成组件的注册的目标视图文件的第一指定位置处添加预设文件处理完成信息;所述预设文件处理完成信息用于表征该目标视图文件已经完成组件的注册。
第二添加模块360,用于在完成组件的注册的目标视图文件的第二指定位置处添加文件引入信息;所述文件引入信息包括所述组件目录中组件的标准组件名称。
本申请实施例提供的目标应用程序的打包装置300,与现有技术中相比,本申请提供的实施例通过先对目标应用程序进行目标视图文件的划分,并根据任一目标视图文件的组件调用信息从配置好的组件目录中获取该目标视图文件所需的目标组件配置文件的存储路径信息,可以实现对每个目标视图文件所需组件进行单独的注册,可以在目标视图在加载时只对所使用的组件的加载,可以提升加载速度,减少注册组件的资源消耗;在提升了开发效率的同时,便于后续的开发修改与重构。
请参阅图5,图5为本申请实施例所提供的一种电子设备的结构示意图。如图5中所示,所述电子设备500包括处理器510、存储器520和总线530。
所述存储器520存储有所述处理器510可执行的机器可读指令,当电子设备500运行时,所述处理器510与所述存储器520之间通过总线530通信,所述机器可读指令被所述处理器510执行时,可以执行如上述图1以及图2所示方法实施例中的打包方法的步骤,具体实现方式可参见方法实施例,在此不再赘述。
本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时可以执行如上述图1以及图2所示方法实施例中的打包方法的步骤,具体实现方式可参见方法实施例,在此不再赘述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的***、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的***、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本申请的具体实施方式,用以说明本申请的技术方案,而非对其限制,本申请的保护范围并不局限于此,尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本申请实施例技术方案的精神和范围,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。

Claims (10)

1.一种目标应用程序的打包方法,其特征在于,所述打包方法包括:
获取目标应用程序所需组件的组件目录、至少一个目标视图文件以及预设调用信息解析规则;
针对任一所述目标视图文件,依据所述预设调用信息解析规则对所述目标视图文件进行解析,得到所述目标视图文件所需的组件的组件调用信息;所述组件调用信息包括每个组件的组件名称以及每个组件名称的位置信息;
针对任一所述目标视图文件所需的任一目标组件的组件名称,从所述组件目录中搜索出所述目标组件的组件配置文件的存储路径信息,并将所述目标组件的目标组件配置文件的存储路径信息写入所述目标视图文件中所述目标组件的组件名称的位置信息处,以便完成对所述目标视图文件中所述目标组件的注册;
基于完成组件的注册的各个所述目标视图文件,对所述目标应用程序进行打包。
2.根据权利要求1所述的打包方法,其特征在于,所述针对任一所述目标视图文件,依据所述预设调用信息解析规则对所述目标视图文件进行解析,得到所述目标视图文件所需的组件的组件调用信息,包括:
针对任一目标视图文件,依据所述预设调用信息解析规则中的格式转换规则对所述目标视图文件进行格式转换,得到转换后的所述目标视图文件对应的目标格式文件;
针对任一所述目标格式文件,判断任一所述目标格式文件中是否存在预设文件处理完成信息;
若任一所述目标格式文件中不存在预设文件处理完成信息,则依据所述预设调用信息解析规则中的预设调用规则公式对任一所述目标格式文件进行组件的调用信息筛选,得到所述目标视图文件所需的组件的组件调用信息。
3.根据权利要求2所述的打包方法,其特征在于,在所述针对任一所述目标格式文件,判断任一所述目标格式文件中是否存在预设文件处理完成信息之后,所述打包方法还包括:
若任一所述目标格式文件中存在预设文件处理完成信息,则结束对所述目标格式文件对应的目标视图文件的解析。
4.根据权利要求1所述的打包方法,其特征在于,所述针对任一所述目标视图文件所需的任一目标组件的组件名称,从所述组件目录中搜索出所述目标组件的目标组件配置文件的存储路径信息,包括:
针对任一目标视图文件所需的任一目标组件的组件名称,判断组件目录中是否存在与任一所述目标组件的组件名称相匹配的组件的组件名称;
若存在,则确定所述组件目录中所述组件的组件配置文件的存储路径信息为所述目标组件的目标组件配置文件的存储路径信息;
若不存在,则更新目标应用程序所述组件的组件目录,并从更新后的组件目录中搜索出所述目标组件的目标组件配置文件的存储路径信息;所述更新后的组件目录中包括所述目标组件的目标组件配置文件的存储路径信息。
5.根据权利要求4所述的打包方法,其特征在于,所述针对任一目标视图文件所需的任一目标组件的组件名称,判断组件目录中是否存在与任一目标组件的组件名称相匹配的组件的组件名称,包括:
将组件目录中组件的组件名称以及任一目标视图文件所需的任一目标组件的组件名称分别进行预设格式转换,生成所述组件目录中组件的标准组件名称以及任一所述目标视图文件所需的任一目标组件的标准目标组件名称;
针对任一所述目标视图文件所需的任一目标组件的标准目标组件名称,判断组件目录中是否存在与任一目标组件的所述标准目标组件名称相匹配的组件的标准组件名称。
6.根据权利要求5所述的打包方法,其特征在于,所述在基于完成组件的注册的各个所述目标视图文件,对所述目标应用程序进行打包之前,所述打包方法还包括:
在完成组件的注册的目标视图文件的第一指定位置处添加预设文件处理完成信息;所述预设文件处理完成信息用于表征该目标视图文件已经完成组件的注册;
在完成组件的注册的目标视图文件的第二指定位置处添加文件引入信息;所述文件引入信息包括所述组件目录中组件的标准组件名称。
7.一种目标应程序的打包装置,其特征在于,所述打包装置包括:
获取模块,用于获取目标应用程序所需组件的组件目录、至少一个目标视图文件以及预设调用信息解析规则;
解析模块,用于针对任一所述目标视图文件,依据所述预设调用信息解析规则对所述目标视图文件进行解析,得到所述目标视图文件所需的组件的组件调用信息;所述组件调用信息包括每个组件的组件名称以及每个组件名称的位置信息;
搜索模块,用于针对任一所述目标视图文件所需的任一目标组件的组件名称,从所述组件目录中搜索出所述目标组件的组件配置文件的存储路径信息,并将所述目标组件的组件配置文件的存储路径信息写入所述目标视图文件中所述目标组件的组件名称的位置信息处,以便完成对所述目标视图文件中所述目标组件的收集;
打包模块,用于基于完成组件的收集的各个所述目标视图文件,对所述目标应用程序进行打包。
8.根据权利要求7所述的打包装置,其特征在于,所述解析模块具体用于:
针对任一目标视图文件,依据所述预设调用信息解析规则中的格式转换规则对所述目标视图文件进行格式转换,得到转换后的所述目标视图文件对应的目标格式文件;
针对任一所述目标格式文件,判断任一所述目标格式文件中是否存在预设文件处理完成信息;
若任一所述目标格式文件中不存在预设文件处理完成信息,则依据所述预设调用信息解析规则中的预设调用规则公式对任一所述目标格式文件进行组件的调用信息筛选,得到所述目标视图文件所需的组件的组件调用信息;所述调用规则公式用于表征组件的调用信息的规则表达式。
9.一种电子设备,其特征在于,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述处理器执行所述机器可读指令,以执行如权利要求1至6任一所述的打包方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如权利要求1至6任一所述的打包方法的步骤。
CN202210088672.7A 2022-01-25 2022-01-25 一种目标应用程序的打包方法、装置及电子设备 Pending CN114443053A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210088672.7A CN114443053A (zh) 2022-01-25 2022-01-25 一种目标应用程序的打包方法、装置及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210088672.7A CN114443053A (zh) 2022-01-25 2022-01-25 一种目标应用程序的打包方法、装置及电子设备

Publications (1)

Publication Number Publication Date
CN114443053A true CN114443053A (zh) 2022-05-06

Family

ID=81369118

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210088672.7A Pending CN114443053A (zh) 2022-01-25 2022-01-25 一种目标应用程序的打包方法、装置及电子设备

Country Status (1)

Country Link
CN (1) CN114443053A (zh)

Similar Documents

Publication Publication Date Title
CN110580147B (zh) 一种应用程序的开发方法和装置
US6003095A (en) Apparatus and method for demand loading a dynamic link library
US8347272B2 (en) Call graph dependency extraction by static source code analysis
CN111680253B (zh) 页面应用数据包生成方法、装置、计算机设备及存储介质
US9841953B2 (en) Pluggable components for runtime-image generation
US7987454B2 (en) System and method for emulating the processing of java server pages
CN110888645A (zh) 一种转换为小程序的方法、装置和存储介质
CN112612502A (zh) 补丁生成方法、装置、设备及存储介质
US8606766B2 (en) Method and system to handle java class versioning
CN111880801A (zh) 应用程序动态化方法、装置、电子设备
CN111367512B (zh) 一种应用程序开发中创建Android库模块依赖关系的方法及装置
CN111736812A (zh) 文档代码执行方法、装置、计算机设备及存储介质
US20110167415A1 (en) Language processing apparatus, language processing method, and computer program product
CN115794214B (zh) 应用模块元数据管理方法、设备、存储介质及装置
Blagodarov et al. Tool demo: Raincode assembler compiler
CN114443053A (zh) 一种目标应用程序的打包方法、装置及电子设备
CN113568678B (zh) 一种动态加载资源的方法、装置及电子设备
CN115048082A (zh) 微前端***构建方法、装置、服务器及可读存储介质
CN115098158A (zh) Sdk打包方法和装置、计算机设备及存储介质
CN117270962B (zh) 一种处理着色语言的方法、装置、存储介质及电子设备
CN115543486B (zh) 面向无服务器计算的冷启动延迟优化方法、装置和设备
CN116955209B (zh) WebAssembly虚拟机的测试方法和装置
CN112764732B (zh) 一种应用于加载目标资源的代码生成方法及装置
CN111045657B (zh) 程序代码的运行方法和运行装置以及编译方法和编译装置
CN110716746B (zh) 将rn样式代码转换为小程序样式代码的方法及装置

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