CN115407977A - 一种信息编译方法、装置、设备及计算机可读存储介质 - Google Patents
一种信息编译方法、装置、设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN115407977A CN115407977A CN202110593334.4A CN202110593334A CN115407977A CN 115407977 A CN115407977 A CN 115407977A CN 202110593334 A CN202110593334 A CN 202110593334A CN 115407977 A CN115407977 A CN 115407977A
- Authority
- CN
- China
- Prior art keywords
- node
- code
- compiled
- page
- compiling
- 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/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/43—Checking; Contextual analysis
- G06F8/433—Dependency analysis; Data or control flow analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/37—Compiler construction; Parser generation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
-
- 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/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/447—Target code generation
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
Abstract
本申请提供了一种信息编译方法、装置、设备及计算机可读存储介质;方法包括:呈现局部编译控件,其中,局部编译控件用于设置待进行局部编译的页面节点;响应于作用在局部编译控件上的局部编译操作,获取待编译页面节点;从代码依赖关系中,获取与待编译页面节点对应的待编译代码节点,其中,代码依赖关系是基于代码文件之间的依赖关系构建出的代码文件对应节点之间的层级关系;编译待编译代码节点对应的待编译代码文件,获得编译代码;基于编译代码,呈现待编译页面节点对应的待查看页面。通过本申请,能够提升信息编译的效率。
Description
技术领域
本申请涉及计算机应用领域中的信息处理技术,尤其涉及一种信息编译方法、装置、设备及计算机可读存储介质。
背景技术
应用开发工具,是一种用于开发和调试应用程序的工具;在开发和调试过程中,应用开发工具对代码文件进行编译,并根据编译后的信息实现指定页面的开发和调试,进而提升开发和调试效率。然而,上述利用应用开发工具执行编译时,应用开发工具通常会编译指定页面所在项目中的所有代码文件,导致代码文件的编译效率较低。
发明内容
本申请实施例提供一种信息编译方法、装置、设备及计算机可读存储介质,能够提升信息编译的效率。
本申请实施例的技术方案是这样实现的:
本申请实施例提供一种信息编译方法,包括:
呈现局部编译控件,其中,所述局部编译控件用于设置待进行局部编译的页面节点;
响应于作用在所述局部编译控件上的局部编译操作,获取待编译页面节点;
从代码依赖关系中,获取与所述待编译页面节点对应的待编译代码节点,其中,所述代码依赖关系是基于代码文件之间的依赖关系构建出的代码文件对应节点之间的层级关系;
编译所述待编译代码节点对应的待编译代码文件,获得编译代码;
基于所述编译代码,呈现所述待编译页面节点对应的待查看页面。
本申请实施例提供一种信息编译装置,包括:
控件呈现模块,用于呈现局部编译控件,其中,所述局部编译控件用于设置待进行局部编译的页面节点;
节点获取模块,用于响应于作用在所述局部编译控件上的局部编译操作,获取待编译页面节点;
节点确定模块,用于从代码依赖关系中,获取与所述待编译页面节点对应的待编译代码节点,其中,所述代码依赖关系是基于代码文件之间的依赖关系构建出的代码文件对应节点之间的层级关系;
代码编译模块,用于编译所述待编译代码节点对应的待编译代码文件,获得编译代码;
页面呈现模块,用于基于所述编译代码,呈现所述待编译页面节点对应的待查看页面。
在本申请实施例中,信息编译装置还包括关系构建模块,用于从应用代码文件中获取应用配置文件,其中,所述应用代码文件为待开发功能应用的全部代码文件;从所述应用代码文件中获取与所述应用配置文件同名的第一同名代码文件,并读取所述应用配置文件,获得页面配置文件;从所述应用代码文件中获取与所述页面配置文件同名的第二同名代码文件,并获取所述第二同名代码文件中的代码引用信息所对应的依赖代码文件;基于所述页面配置文件的名称确定页面节点,并将所述第二同名代码文件对应的节点和所述依赖代码文件对应的节点确定为所述页面节点的后代节点;基于所述应用配置文件的名称确定应用节点,并将所述第一同名代码文件对应的节点和所述页面节点确定为所述应用节点的后代节点,其中,所述代码依赖关系为所述应用节点、所述第一同名代码文件对应的节点、所述页面节点、所述第二同名代码文件对应的节点和所述依赖代码文件对应的节点的层级关系。
在本申请实施例中,所述节点确定模块,还用于从所述代码依赖关系中,确定与所述待编译页面节点对应的目标页面节点;从所述代码依赖关系中,获取所述目标页面节点的后代节点;获取所述目标页面节点的父节点,得到应用节点,并从所述代码依赖关系中,获取所述应用节点所引用的非页面节点,得到第一同名代码文件对应的节点;将所述目标页面节点的后代节点和所述第一同名代码文件对应的节点,确定为所述待编译代码节点。
在本申请实施例中,所述控件呈现模块,还用于呈现局部编译开关控件,其中,所述局部编译开关控件用于设置代码文件的编译模式;响应于作用在所述局部编译开关控件上的局部编译开启操作,呈现所述局部编译控件。
在本申请实施例中,所述控件呈现模块,还用于响应于作用在所述局部编译开关控件上的局部编译关闭操作,隐藏所述局部编译控件,并编译应用代码文件;基于编译后的应用代码文件,呈现所述待查看页面。
在本申请实施例中,所述代码编译模块,还用于在基于呈现的所述局部编译控件未获取到所述待编译页面节点时,编译应用代码文件,并基于编译后的应用代码文件,呈现所述待查看页面。
在本申请实施例中,所述节点获取模块,还用于响应于作用在待编译主节点输入控件上的待编译主节点输入操作,获取待编译主页面节点;响应于作用在节点添加控件上的节点添加操作,呈现待编译关联节点输入控件;响应于作用在所述待编译关联节点输入控件上的待编译关联节点输入操作,获得待编译关联页面节点,其中,所述局部编译控件包括所述待编译主节点输入控件和所述节点添加控件,所述局部编译操作包括所述待编译主节点输入操作和所述节点添加操作;将所述待编译主页面节点和所述待编译关联页面节点,确定为所述待编译节点。
在本申请实施例中,信息编译装置还包括信息提示模块,用于在基于所述待编译页面节点进行编译时,呈现局部编译提示信息,其中,所述局部编译提示信息包括局部编译标题提示信息和局部编译状态提示信息中的至少一种。
在本申请实施例中,信息编译装置还包括代码打包模块,用于呈现打包控件,其中,所述打包控件为预览控件或真机调试控件;响应于作用在所述打包控件上的打包操作,打包所述编译代码,获得代码包;呈现所述代码包的大小信息,并向服务设备发送所述代码包,以对所述待编译代码文件进行预览或真机调试。
在本申请实施例中,所述待查看页面为子程序页面。
本申请实施例提供一种信息编译设备,包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现本申请实施例提供的信息编译方法。
本申请实施例提供一种计算机可读存储介质,存储有可执行指令,用于引起处理器执行时,实现本申请实施例提供的信息编译方法。
本申请实施例至少具有以下有益效果:预先通过分析代码文件之间的依赖关系而构建出代码依赖关系,使得呈现待查看页面时,仅编译基于该代码依赖关系获取到的待查看页面所涉及的代码文件(待编译代码文件),编译的代码文件的数量较少;因此,能够提升信息编译的效率。
附图说明
图1a是本申请实施例提供的信息编译系统的一个可选的架构示意图;
图1b是本申请实施例提供的信息编译系统的另一个可选的架构示意图;
图2是本申请实施例提供的一种信息编译设备的组成结构示意图;
图3是本申请实施例提供的信息编译方法的一个可选的流程示意图;
图4是本申请实施例提供的一种示例性的呈现待查看页面的示意图;
图5是本申请实施例提供的信息编译方法的另一个可选的流程示意图;
图6是本申请实施例提供的一种示例性的代码文件目标结构信息示意图;
图7是本申请实施例提供的一种示例性的信息编译流程实现示意图;
图8是本申请实施例提供的另一种示例性的代码文件目录结构信息示意图;
图9是本申请实施例提供的一种与图8对应的代码依赖关系示意图;
图10是本申请实施例提供的一种示例性的局部编译设置示意图;
图11是本申请实施例提供的一种示例性的在图9中确定局部编译的页面节点的示意图;
图12是本申请实施例提供的一种示例性的在图9中确定待编译代码节点的示意图;
图13是本申请实施例提供的一种示例性的待编译代码文件的示意图;
图14是本申请实施例提供的一种示例性的呈现局部编译提示信息的示意图;
图15是本申请实施例提供的一种示例的呈现代码包大小信息的示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,所描述的实施例不应视为对本申请的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
在以下的描述中,所涉及的术语“第一\第二”仅仅是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
对本申请实施例进行进一步详细说明之前,对本申请实施例中涉及的名词和术语进行说明,本申请实施例中涉及的名词和术语适用于如下的解释。
1)代码文件,一种通过编译实现对应功能的信息,比如“json”、“wxml”、“wxs”、“wxss”和“js”格式的文件;代码文件通常由代码构成,编译时,是对代码文件中的代码进行编译,其中,代码是程序员用开发工具所支持的语言写出来的源文件,是一组由字符、符号或信号码元以离散形式表示信息的明确的规则体系。
2)编译,将代码文件中以一种程序设计语言设计的代码翻译为另一种语言(比如,计算机可读语言)的过程。
3)预览,将项目对应的代码文件上传到应用平台,开发者通过访问应用平台查看项目运行效果的过程;其中,项目是指一个功能应用,比如,一个子程序应用(例如,小程序应用),一个应用程序(APP,Application),一个网站,等等。
4)小程序(Mini Program),又称为小程序应用,一种不需要下载安装即可使用的应用程序;通常为了向用户提供更多样化的业务服务,开发者可为终端的应用(例如即时通信应用、购物应用、邮件应用等)开发相应的小程序,该小程序可作为子应用被嵌入至终端的应用中,通过运行应用内的子应用(即对应的小程序)能够为用户提供相应的业务服务。
5)真机调试,在预览的基础上,远程调试应用平台中所运行的项目的过程。
6)控件,是一种通过按钮、图标、链接、文本、选择框、输入框、页签等形式展示的可触发的信息;其中,触发的方式,可以是接触式触发,还可以是无接触式触发,又可以是接收指令式的触发等;另外,本申请实施例中的各种控件可以是单个控件,又可以是多个控件的总称。
7)操作,是一种用于触发设备执行处理的方式,比如,点击操作、双击操作、长按操作、滑动操作、手势操作、接收到的触发指令等;另外,在本申请实施例中的各种操作可以是单个操作,又可以是多个操作的总称;以及在本申请实施例中的各种操作可用是触控操作,又可用是非触控操作。
8)响应于,用于表示所执行的处理所依赖的条件或者状态,当满足所依赖的条件或状态时,所执行的一个或多个操作可以是实时的,也可以具有设定的延迟;在没有特别说明的情况下,所执行的多个操作不存在执行先后顺序的限制。
一般来说,为了实现代码文件的编译,应用开发工具通常会编译指定页面所在项目中的所有代码文件;比如,在子程序应用的开发阶段,开发者针对正在开发的少部分页面进行效果查看时,应用开发工具会加载项目中所有的代码文件(即全部页面)进行编译,编译耗时较长。再比如,在子程序应用的预览和真机调试阶段,针对待预览和真机调试的页面,应用开发工具会加载项目中所有的代码文件进行编译和打包,以向子程序应用后台(应用平台)上传,编译耗时较长,并且,上传的代码包的体积较大,上传耗时较长。
基于此,本申请实施例提供一种信息编译方法、装置、设备和计算机可读存储介质,能够提升信息编译效率,降低信息编译的资源消耗,以及降低代码包的上传量,提升代码包的上传效率。下面说明本申请实施例提供的信息编译设备的示例性应用,本申请实施例提供的信息编译设备可以实施为笔记本电脑,平板电脑,台式计算机,机顶盒,移动设备(例如,移动电话,便携式音乐播放器,个人数字助理,专用消息设备,便携式游戏设备)等各种类型的终端,也可以实施为服务器,还可以实施为终端和服务器。下面,将说明信息编译设备实施为终端和服务器时的示例性应用。
参见图1a,图1a是本申请实施例提供的信息编译系统的一个可选的架构示意图;如图1a所示,为支撑一个信息编译应用,在信息编译系统100中,终端400通过网络300连接服务器200(终端400和服务器200共同构成本申请实施例中的信息编译设备),网络300可以是广域网或者局域网,又或者是二者的组合。另外,在信息编译系统100中,还包括数据库500,用于向服务器200发送代码依赖关系和待编译代码文件。
终端400,用于呈现局部编译控件,其中,局部编译控件用于设置待进行局部编译的页面节点;响应于作用在局部编译控件上的局部编译操作,获取待编译页面节点(比如,“pages/index”),并通过网络300向服务器200发送待编译页面节点;还用于通过网络300接收服务器200发送的待查看页面,呈现待编译页面节点对应的待查看页面。
服务器200,用于通过网络300接收终端400发送待编译页面节点,从代码依赖关系中,获取与待编译页面节点对应的待编译代码节点,其中,代码依赖关系是基于代码文件之间的依赖关系构建出的代码文件对应节点之间的层级关系;局部编译待编译代码节点对应的待编译代码文件,获得编译代码;基于编译代码,通过网络300向终端400发送待查看页面。
在一些实施例中,服务器200可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(Content Delivery Network,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器。终端400可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请实施例中不做限制。
参见图1b,图1b是本申请实施例提供的信息编译系统的另一个可选的架构示意图;如图1b所示,基于图1a,在预览或真机调试时,服务器400还用于对编译代码进行打包;从而,在信息编译系统100中,还包括服务器600(服务设备)和终端700,其中,服务器600通过网络300获取服务器200发送的代码包,并通过网络300向终端700发送用于呈现待查看页面的数据,以使终端700呈现待查看页面。
参见图2,图2是本申请实施例提供的一种信息编译设备的组成结构示意图;图2所示的信息编译设备2-1包括:至少一个处理器410、存储器450、至少一个网络接口420和用户接口430。信息编译设备2-1中的各个组件通过总线系统440耦合在一起。可理解,总线系统440用于实现这些组件之间的连接通信。总线系统440除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图2中将各种总线都标为总线系统440。
处理器410可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(DSP,Digital Signal Processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。
用户接口430包括使得能够呈现媒体内容的一个或多个输出装置431,包括一个或多个扬声器和/或一个或多个视觉显示屏。用户接口430还包括一个或多个输入装置432,包括有助于用户输入的用户接口部件,比如键盘、鼠标、麦克风、触屏显示屏、摄像头、其他输入按钮和控件。
存储器450可以是可移除的,不可移除的或其组合。示例性的硬件设备包括固态存储器,硬盘驱动器,光盘驱动器等。存储器450可选地包括在物理位置上远离处理器410的一个或多个存储设备。
存储器450包括易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。非易失性存储器可以是只读存储器(ROM,Read Only Me mory),易失性存储器可以是随机存取存储器(RAM,Random Access Memo ry)。本申请实施例描述的存储器450旨在包括任意适合类型的存储器。
在一些实施例中,存储器450能够存储数据以支持各种操作,这些数据的示例包括程序、模块和数据结构或者其子集或超集,下面示例性说明。
操作系统451,包括用于处理各种基本系统服务和执行硬件相关任务的系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;
网络通信模块452,用于经由一个或多个(有线或无线)网络接口420到达其他计算机设备,示例性的网络接口420包括:蓝牙、无线相容性认证(Wi-Fi)、和通用串行总线(USB,Universal Serial Bus)等;
呈现模块453,用于经由一个或多个与用户接口430相关联的输出装置431(例如,显示屏、扬声器等)使得能够呈现信息(例如,用于操作外围设备,显示内容和信息的用户接口);
输入处理模块454,用于对一个或多个来自一个或多个输入装置432之一的一个或多个用户输入或互动进行检测以及翻译所检测的输入或互动。
在一些实施例中,本申请实施例提供的信息编译装置可以采用软件方式实现,图2示出了存储在存储器450中的信息编译装置455,其可以是程序和插件等形式的软件,包括以下软件模块:控件呈现模块4551、节点获取模块4552、节点确定模块4553、代码编译模块4554、页面呈现模块4555、关系构建模块4556、信息提示模块4557和代码打包模块4558,这些模块是逻辑上的,因此根据所实现的功能可以进行任意的组合或进一步拆分。将在下文中说明各个模块的功能。
在另一些实施例中,本申请实施例提供的信息编译装置可以采用硬件方式实现,作为示例,本申请实施例提供的信息编译装置可以是采用硬件译码处理器形式的处理器,其被编程以执行本申请实施例提供的信息编译方法,例如,硬件译码处理器形式的处理器可以采用一个或多个应用专用集成电路(ASIC,Application Specific IntegratedCircuit)、DSP、可编程逻辑器件(PLD,Programmable Logic Device)、复杂可编程逻辑器件(CPLD,Complex Programmable Logic Device)、现场可编程门阵列(FPGA,Field-Programmable Gate Array)或其他电子元件。
下面,将结合本申请实施例提供的示例性应用和实施,说明本申请实施例提供的信息编译方法。
参见图3,图3是本申请实施例提供的信息编译方法的一个可选的流程示意图;将结合图3示出的步骤进行说明。
S301、呈现局部编译控件。
在本申请实施例中,当信息编译设备运行应用开发工具,开启局部编译处理流程时,是通过呈现局部编译控件来获取待进行局部编译的页面节点的;也就是说,局部编译控件用于设置待进行局部编译的页面节点,这里,将页面作为节点,页面与页面节点对应。
需要说明的是,局部编译控件可以呈现在用于进行编译信息设置的页面或弹出框上,还可以呈现在用于编译代码文件的页面上,等等,本申请实施例对局部编译控件的呈现形式不作具体限定。局部编译控件还可以对应提示信息,比如,“本地开发和预览时,仅编译以下页面:”,或者“请输入需要局部编译的页面”等等。这里,局部编译控件可以是输入框、选择框、可选择的页面列表等等,本申请实施例对局部编译控件的控件形式不作具体限定。
S302、响应于作用在局部编译控件上的局部编译操作,获取待编译页面节点。
在本申请实施例中,当用户通过局部编译控件指定待进行局部编辑的页面时,信息编译设备也就获得了作用在局部编译控件上的局部编译操作;此时,信息编译设备响应于该局部编译操作,也就能够获得输入的待进行局部编译的页面所对应的页面节点,该待进行局部编译的页面所对应的页面节点即待编译页面节点。
需要说明的是,局部编译操作为触发局部编译控件以确定待进行局部编译的页面节点的操作,从而,信息编译设备通过响应于该局部编译操作能够获得待进行局部编译的页面节点,即待编译页面节点。这里,待编译页面节点包括至少一个页面节点,比如,页面节点“pages/index”、页面节点“pages/logs”和页面节点“pages/details”中的至少一种。
S303、从代码依赖关系中,获取与待编译页面节点对应的待编译代码节点。
在本申请实施例中,信息编译设备能够获取到代码依赖关系,该代码依赖关系是基于代码文件之间的依赖关系构建出的代码文件对应节点之间的层级关系;从而,信息编译设备获得了待编译页面节点之后,能在代码依赖关系中确定出与待编译页面节点关联的代码文件的节点,该与待编译页面节点关联的代码文件的节点即待编译代码节点。这里,将代码文件作为节点,代码文件对应代码节点。
需要说明的是,代码依赖关系中可以包括页面节点和代码节点,页面节点与代码节点关联,且代码节点之间存在依赖关系,还可以包括待开发的功能应用下的应用级别的代码节点;从而,待编译代码节点可以包括与待编译页面节点关联的代码节点,还可以包括待编译页面节点关联的代码节点所依赖的代码节点,以及还可以包括待开发的功能应用下的应用级别的代码节点,本申请实施例对此不作具体限定。
示例性地,当待编译页面节点为页面节点“pages/index”时,待编译代码节点包括应用级别的代码节点“app.js”、“app.json”和“app.wxss”,与待编译页面节点关联的代码节点“index.js”、“index.json”、“index.wxml”和“index.wxss”。
S304、编译待编译代码节点对应的待编译代码文件,获得编译代码。
在本申请实施例中,由于待编译代码节点包括至少一个代码节点,而一个代码节点与一个代码文件对应,从而,信息编译设备能够获得待编译代码节点对应的至少一个代码文件,该待编译代码节点对应的至少一个代码文件即待编译代码文件。这里,信息编译设备对待编译代码文件进行编译,所获得的编译结果即编译代码,也就是说,编译代码为编译后的待编译代码文件;另外,信息编译设备可以通过应用开发工具中的编译模块编译待编译代码文件。
S305、基于编译代码,呈现待编译页面节点对应的待查看页面。
在本申请实施例中,信息编译设备响应于编译代码的指令呈现页面,该响应于编译代码的指令所呈现的页面,即待编译页面节点对应的待查看页面。其中,待查看页面可以是开发阶段正在开发的页面,还可以是预览阶段的页面,又可以是真机调试阶段的页面,等等,本申请实施例对此不作具体限定。
示例性的,参见图4,图4是本申请实施例提供的一种示例性的呈现待查看页面的示意图;如图4所示,在页面4-1中呈现局部编译控件4-11和提示信息4-12;在页面4-2中呈现局部编译控件4-21和提示信息4-22;在页面4-3中呈现局部编译控件4-31和提示信息4-32。通过在局部编译控件4-11中选择待编译页面节点“pages/detail”、通过在局部编译控件4-21中输入待编译页面节点“pages/detail”或者通过在局部编译控件4-31上选择待编译页面节点“pages/detail”,就能实现待查看页面4-4的呈现。
可以理解的是,基于代码文件之间的依赖关系的分析结果,以及当前正在开发的页面(对应于待编译页面阶段),确定出相关的代码文件(待编译代码文件),减少了编译过程中代码文件的数量,提升了编译的速度,减少了编译时间,提升了编译的顺畅程度,从而提高了功能应用的开发效率。
参见图5,图5是本申请实施例提供的信息编译方法的另一个可选的流程示意图;如图5所示,在本申请实施例中,S303之前还包括S306至S310;也就是说,信息编译设备从代码依赖关系中,获取与待编译页面节点对应的待编译代码节点之前,该信息编译方法还包括S306至S310,下面对各步骤分别进行说明。
S306、从应用代码文件中获取应用配置文件。
需要说明的是,应用代码文件为待开发功能应用的全部代码文件,包括待开发应用的应用级别的配置信息所对应的代码文件;其中,待开发应用的应用级别的配置信息所对应的代码文件,即应用配置文件,比如,“app.json”代码文件。
在本申请实施例中,信息编译设备还可以基于代码文件目标结构信息,获得应用配置文件;其中,代码文件目标结构信息指待开发应用的代码文件所对应的目标结构;在代码文件目标结构信息中,包括了待开发应用的配置文件标识,基于该配置文件标识获取对应的代码文件,获得的配置文件标识所对应的代码文件即应用配置文件。
示例性地,参见图6,图6是本申请实施例提供的一种示例性的代码文件目标结构信息示意图;如图6所示,代码文件目录结构信息6-1,为一个包含两个页面(主页“index”页面和日志“logs”页面)的子程序应用的代码文件的目录结构,第一级目录包括子程序应用的非页面对应的代码文件的名称:“app.js”、“app.json”、“app.wxss”、“project.config.json”、“sitemap.json”、…,其中,“app.json”(配置文件标识)对应的代码文件即应用配置文件。
S307、从应用代码文件中获取与应用配置文件同名的第一同名代码文件,并读取应用配置文件,获得页面配置文件。
需要说明的是,应用配置文件的名称包括文件名称和代码类型,比如,“app.json”中,“app”为文件名称,“.json”为代码类型。这里,信息编译设备基于应用配置文件的文件名称,读取应用代码文件,从应用代码文件中确定出与应用配置文件的文件名称同名的代码文件,并将确定出的与应用配置文件的文件名称同名的代码文件确定为第一同名代码文件;比如,与“app.json”中的“app”同名的“app.js”和“app.wxss”分别对应的代码文件。
在本申请实施例中,信息编译设备还可以通过代码文件目标结构信息,获取第一同名代码文件;这里,信息编译设备从代码文件目标结构信息中,获取配置文件标识所在目标级别下除页面关联代码文件的标识之外的标识所对应的代码文件,将配置文件标识所在目标级别下除页面关联代码文件的标识之外的标识所对应的代码文件,确定为第一同名代码文件。其中,应用代码文件与代码文件目标结构信息对应。
示例性地,继续参见图6,配置文件标识所在目标级别下除页面关联代码文件的标识之外的标识为:“app.js”、“app.json”、“app.wxss”、“project.config.json”和“sitemap.json”。
在本申请实施例中,应用配置文件中包括待开发应用的页面的配置文件的相关信息;这里,信息编译设备读取应用配置文件中待开发应用的页面的配置文件的相关信息,基于读取到的待开发应用的页面的配置文件的相关信息获取对应的代码文件,也就获得了页面配置文件。
S308、从应用代码文件中获取与页面配置文件同名的第二同名代码文件,并获取第二同名代码文件中的代码引用信息所对应的依赖代码文件。
需要说明的是,页面配置文件的名称包括文件名称和代码类型;这里,信息编译设备基于页面配置文件的文件名称,读取应用代码文件,从应用代码文件中确定出与页面配置文件的文件名称同名的代码文件,并将确定出的与页面配置文件的文件名称同名的代码文件确定为第二同名代码文件;比如,与“index.json”中的“index”同名的“index.js”、“index.wxml”和“index.wxss”分别对应的代码文件;再比如,与“logs.json”中的“logs”同名的“logs.js”、“logs.wxml”和“logs.wxss”分别对应的代码文件。
在本申请实施例中,信息编译设备读取第二同名代码文件,如果获取到代码引用信息,则基于代码引用信息中所引用的代码文件的名称,确定所引用的代码文件,该引用的代码文件即依赖代码文件;比如,“logs.js”代码文件(第二同名代码文件)所引用的代码文件为路径“util”下的“util.js”。
S309、基于页面配置文件的名称确定页面节点,并将第二同名代码文件对应的节点和依赖代码文件对应的节点确定为页面节点的后代节点。
在本申请实施例中,页面节点可以是页面配置文件的名称中的文件名称,还可以是页面配置文件的名称,也可以是页面配置文件的名称中的文件名称和路径的结合,等等,本申请实施例对此不作具体限定;其中,页面配置文件的路径可以是基于代码文件目录结构信息确定的。比如,当页面配置文件为“index.json”对应的代码文件时,则对应的页面节点可以为“pages/index”;再比如,当页面配置文件为“logs.json”对应的代码文件时,则对应的页面节点可以为“pages/logs”。这里,第二同名代码文件对应的节点可以是第二同名代码文件的名称,依赖代码文件对应的节点可以是依赖代码文件的名称和路径的结合,其中,依赖代码文件的路径可以是基于代码文件目录结构信息确定的。
需要说明的是,第二同名代码文件对应的节点和依赖代码文件对应的节点均为页面节点的后代节点,其中,依赖代码文件对应的节点为第二同名代码文件对应的节点的后代节点。
S310、基于应用配置文件的名称确定应用节点,并将第一同名代码文件对应的节点和页面节点确定为应用节点的后代节点,其中,代码依赖关系为应用节点、第一同名代码文件对应的节点、页面节点、第二同名代码文件对应的节点和依赖代码文件对应的节点的层级关系。
在本申请实施例中,应用节点可以是应用配置文件的名称中的文件名称,还可以是应用配置文件的名称,也可以是应用配置文件的名称中的文件名称和路径的结合,等等,本申请实施例对此不作具体限定;其中,应用配置文件的路径可以是基于代码文件目录结构信息确定的。比如,当应用配置文件为“app.json”对应的代码文件时,则对应的应用节点可以为“app”。这里,第一同名代码文件对应的节点可以是第一同名代码文件的名称。
需要说明的是,节点之间的层级关系即代码依赖关系为:第一同名代码文件对应的节点和页面节点均为应用节点的后代节点,第二同名代码文件对应的节点为页面节点的后代节点,依赖代码文件对应的节点为第二同名代码文件对应的节点的后代节点。
可以理解的是,预先通过分析代码文件之间的依赖关系,构建代码依赖关系,为代码文件的局部编译提供了数据支持。
在本申请实施例中,S303可通过S3031至S3034实现;也就是说,信息编译设备从代码依赖关系中,获取与待编译页面节点对应的待编译代码节点,包括S3031至S3034,下面对各步骤分别进行说明。
S3031、从代码依赖关系中,确定与待编译页面节点对应的目标页面节点。
在本申请实施例中,信息编译设备在基于待编译页面节点从代码依赖关系中确定待编译代码节点时,先在代码依赖关系中,定位出与待编译页面节点对应的页面节点,该定位出的与待编译页面节点对应的页面节点即目标页面节点。
S3032、从代码依赖关系中,获取目标页面节点的后代节点。
S3033、获取目标页面节点的父节点,得到应用节点,并从代码依赖关系中,获取应用节点所引用的非页面节点,得到第一同名代码文件对应的节点。
在本申请实施例中,一方面,信息编译设备从代码依赖关系中获取目标页面节点的后代节点;另一方面,信息编译设备还从代码依赖关系中获取应用节点所引用的非页面节点,该应用节点所引用的非页面节点即第一同名代码文件对应的节点。
S3034、将目标页面节点的后代节点和第一同名代码文件对应的节点,确定为待编译代码节点。
需要说明的是,待编译代码节点包括目标页面节点的后代节点和第一同名代码文件对应的节点,其中,目标页面节点的后代节点包括第二同名代码文件对应的节点,或者目标页面节点的后代节点包括第二同名代码文件对应的节点和依赖代码文件对应的节点。
在本申请实施例中,S301可通过S3011和S3012实现;也就是说,信息编译设备呈现局部编译控件,包括S3011和S3012,下面对各步骤进行说明。
S3011、呈现局部编译开关控件。
需要说明的是,信息编译设备运行应用开发工具,可以先呈现用于设置代码文件的编译模式的控件,该用于设置代码文件的编译模式的控件即局部编译开关控件。这里,局部编译开关控件可以是全局编译和局部编译的选择框,还可以是局部编译的勾选框,等等,本申请实施例对局部编译开关控件的形式不作具体限定。其中,编译模式包括局部编译模式和全局编译模式。
S3012、响应于作用在局部编译开关控件上的局部编译开启操作,呈现局部编译控件。
在本申请实施例中,当用户通过触发局部编译开关控件开启局部编译模式时,信息编译设备也就接收到了作用在局部编译开关控件上的局部编译开启操作;此时,信息编译设备响应于该局部编译开启操作,呈现用于获取待编译页面节点的局部编译控件,以进入局部编译模式。
需要说明的是,局部编译控件可以是直接呈现的,也可以是基于对局部编译开关控件的局部编译开启操作呈现的,等等,本申请实施例对此不作具体限定。
在本申请实施例中,S3012之后还包括S3013和S3014;也就是说,信息编译设备响应于作用在局部编译开关控件上的局部编译开启操作,呈现局部编译控件之后,该信息编译方法还包括S3013和S3014,下面对各步骤分别进行说明。
S3013、响应于作用在局部编译开关控件上的局部编译关闭操作,隐藏局部编译控件,并编译应用代码文件。
在本申请实施例中,当用户通过触发局部编译开关控件关闭局部编译模式或开启全局编译模式时,信息编译设备也就接收到了作用在局部编译开关控件上的局部编译关闭操作;此时,信息编译设备响应于该局部编译关闭操作,隐藏局部编译控件,并编译应用代码文件,以进入全局编译模式。
S3014、基于编译后的应用代码文件,呈现待查看页面。
需要说明的是,全局编译模式下,对所有的代码文件(应用代码文件)进行了编译,待查看页面是基于编译后的所有的代码文件(编译后的应用代码文件)进行的呈现。
在本申请实施例中,S301之后还包括S311;也就是说,信息编译设备呈现局部编译控件之后,该信息编译方法还包括S311,下面对该步骤进行说明。
S311、在基于呈现的局部编译控件未获取到待编译页面节点时,编译应用代码文件,并基于编译后的应用代码文件,呈现待查看页面。
需要说明的是,信息编译设备基于呈现的局部编译控件未获取到待编译页面节点,表明不进行局部编译而进行全局编译;此时,信息编译设备编译应用代码文件,并基于编译后的应用代码文件,呈现待查看页面。
在本申请实施例中,在呈现局部编译开关控件时,可以基于局部编译开关控件确定编译的模式是局部编译模式还是全局编译模式;在呈现局部编译控件时,可以基于呈现的局部编译控件是否获取到待编译页面节点,来确定编译的模式是局部编译模式还是全局编译模式,即获取到了待编译页面节点则进入局部编译模式,未获取到待编译页面节点则进入全局编译模式。
在本申请实施例中,S302可通过S3021至S3024实现;也就是说,信息编译设备响应于作用在局部编译控件上的局部编译操作,获取待编译页面节点,包括S3021和S3024,下面对各步骤分别进行说明。
S3021、响应于作用在待编译主节点输入控件上的待编译主节点输入操作,获取待编译主页面节点。
在本申请实施例中,局部编译控件包括待编译主节点输入控件,信息编译设备通过待编译主节点输入控件,获得启动的页面对应的页面节点,这里称为待编译主页面节点。
S3022、响应于作用在节点添加控件上的节点添加操作,呈现待编译关联节点输入控件。
在本申请实施例中,局部编译控件还包括节点添加控件,信息编译设备通过节点添加控件,呈现用于获取待编译主页面节点关联的页面所对应的页面节点的控件,该用于获取待编译主页面节点关联的页面所对应的页面节点的控件即待编译关联节点输入控件。其中,待编译主页面节点关联的页面,比如为,跳转的页面,返回的页面,等等。
S3023、响应于作用在待编译关联节点输入控件上的待编译关联节点输入操作,获得待编译关联页面节点。
在本申请实施例中,当用户通过触发待编译关联节点输入控件输入待编译主页面节点关联的页面所对应的页面节点时,信息编译设备也就接收到了作用在待编译关联节点输入控件上的待编译关联节点输入操作,待编译关联节点输入操作是指通过待编译关联节点输入控件输入待编译主页面节点关联的页面所对应的页面节点的操作;从而此时,信息编译设备响应于该待编译关联节点输入操作,能够获得到输入的待编译主页面节点关联的页面所对应的页面节点,该待编译主页面节点关联的页面所对应的页面节点即待编译关联页面节点。
需要说明的是,局部编译控件包括待编译主节点输入控件和节点添加控件,局部编译操作包括待编译主节点输入操作和节点添加操作;
S3024、将待编译主页面节点和待编译关联页面节点,确定为待编译节点。
需要说明的是,待编译节点包括待编译主页面节点和待编译关联页面节点。
在本申请实施例中,S302之后还包括S312;也就是说,信息编译设备响应于作用在局部编译控件上的局部编译操作,获取待编译页面节点之后,该信息编译方法还包括S312,下面对该步骤分别进行说明。
S312、在基于待编译页面节点进行编译时,呈现局部编译提示信息。
需要说明的是,局部编译提示信息包括局部编译标题提示信息和局部编译状态提示信息中的至少一种,其中,局部编译标题提示信息是指通过标题的形式显示局部编译模式的提示信息,局部编译状态提示信息是指针对呈现的编译过程的信息所呈现的局部编译模式的提示信息。
可以理解的是,通过在编译过程中呈现局部编译提示信息,不仅能够提升信息编译的信息呈现效果,还能够及时确定编译模式,降低确定编译模式的人机交互,提升信息编译的效率。
在本申请实施例中,S305之后还包括S313至S315;也就是说,信息编译设备基于编译代码,呈现待编译页面节点对应的待查看页面之后,该信息编译方法还包括S313至S315,下面对各步骤分别进行说明。
S313、呈现打包控件。
需要说明的是,打包控件为预览控件或真机调试控件;其中,预览控件为用于触发预览处理的控件,真机调试控件为用于触发真机调试处理的控件。
S314、响应于作用在打包控件上的打包操作,打包编译代码,获得代码包。
在本申请实施例中,当用户触发预览控件进行预览时,或者用户触发真机调试控件进行真机调试时,信息编译设备也就获得了作用在打包控件上的打包操作;这里,打包操作是指通过触发打包控件对编译代码进行打包以进行预览或真机调试的操作;此时,信息编译设备响应于该打包操作,对编译代码执行打包处理,其中,打包后的编译代码即代码包。
S315、呈现代码包的大小信息,并向服务设备发送代码包,以对待编译代码文件进行预览或真机调试。
在本申请实施例中,信息编译设备完成编译代码的打包获得代码包之后,还会呈现代码包的大小信息,比如,“局部编译生效中,代码包594KB”;并且,信息编译设备还会将代码包向服务设备发送,以是服务设备向真机设备下发数据,在真机设备上实现待查看页面的预览或真机调试。
可以理解的是,通过信息局部编译控件,仅对待查看页面所涉及的代码文件进行编译,实现局部编译的同时,还减小了代码包的大小,提升了代码包的上传效率,降低了上传代码包的资源消耗。
在本申请实施例中,待查看页面为子程序页面。从而,应用开发工具为子程序应用的开发工具,应用代码文件为子程序应用所对应的所有代码文件,待开发功能应用为子程序应用。
下面,将说明本申请实施例在一个实际的应用场景中的示例性应用。
参见图7,图7是本申请实施例提供的一种示例性的信息编译流程实现示意图;如图7所示,在该示例性的信息编译实现流程为:
S701、构建代码依赖关系图谱(代码依赖关系)。
需要说明的是,通过分析小程序项目(子程序应用)的代码文件(应用代码文件),构建出代码依赖关系图谱。其中,项目的代码文件是指项目的所有代码文件,包括项目配置文件“app.json”(应用配置文件);首先,从项目配置文件“app.json”中,获取全部的页面配置文件;然后,获取页面配置文件对应的同名代码文件(第二同名代码文件);最后,读取同名代码文件,获得引用代码文件(依赖代码文件),该页面配置文件对应的同名代码文件和引用代码文件,即页面对应的代码文件。同时,获取项目配置文件对应的同名代码文件(第一同名代码文件)。从而,基于页面对应的代码文件、项目配置文件对应的同名代码文件,构建出代码依赖关系图谱。
示例性地,参见图8,图8是本申请实施例提供的另一种示例性的代码文件目录结构信息示意图;如图8所示,一个包含两个页面的小程序项目的代码文件目录结构信息8-1中,包括的代码文件所对应的组织结构为:“app.js”,“app.json”,“app.wxss”,“pages”下的“index.js”、“index.json”、“index.wxml”、“index.wxss”、“logs.js”、“logs.json”、“logs.wxml”和“logs.wxss”,“project.config.json”,“sitemap.json”,以及“utils”下的“util.js”。
基于图8,参见图9,图9是本申请实施例提供的一种与图8对应的代码依赖关系示意图;如图9所示,基于图8示出的目标结构,该代码依赖关系图谱9-1的获取过程包括:获取项目配置文件“app.json”,并从项目配置文件“app.json”中获取页面配置文件“index.json”和“logs.json”,基于页面配置文件“index.json”构建页面节点“pages/index”,以及获取与页面配置文件“index.json”同名的代码文件“index.js”、“index.wxml”和“index.wxss”(第二同名代码文件),另外,读取代码文件“index.js”、“index.wxml”和“index.wxss”中的引用代码,确定无引用的代码文件,从而,此时页面节点“pages/index”下对应的代码节点为代码节点“index.js”、“index.wxml”和“index.wxss”;基于页面配置文件“logs.json”构建页面节点“pages/logs”,以及获取与页面配置文件“logs.json”同名的代码文件“logs.js”、“logs.wxml”和“logs.wxss”,读取代码文件“logs.js”、“logs.wxml”和“logs.wxss”中的引用代码,确定代码文件“logs.js”所引用的代码文件“untils”下的“util.js”(依赖代码文件),从而,此时页面节点“pages/logs”下对应的代码节点为代码节点“logs.js”、“logs.wxml”和“logs.wxss”,以及代码节点“logs.js”下对应的代码节点“utils/util.js”。同时获取与项目配置文件“app.json”同名的代码文件“app.js”和“app.wxss”(第一同名代码文件),从而,构建项目节点“app”(应用节点),且项目节点“app”下对应的节点为:代码节点“app.js”和“app.wxss”、页面节点“pages/logs”、以及页面节点“pages/logs”。
S702、局部编译设置。
这里,通过局部编译设置开启局部编译,获取待编译页面列表(待编译页面节点)。
参见图10,图10是本申请实施例提供的一种示例性的局部编译设置示意图;如图10所示,在自定义编译条件页面10-1中,显示标题10-11(自定义编译条件)、其他编译设置项10-12(模式名称“pages/index”、启动页面“pages/index”、启动参数“name=vendor&color=black”、进入场景“默认”和编译设置)和局部编译勾选框10-13(局部编译开关控件),还显示有取消按钮10-14和确定按钮10-15。在用户勾选局部编译勾选框10-13时,在自定义编译条件页面10-1中,勾选后的局部编译勾选框10-13的对应位置处,显示提示信息10-131和页面列表输入框10-132(局部编译控件)、以及添加按钮10-133(节点添加控件);这里,通过在页面列表输入框10-132中输入页面列表获得待编译页面列表;或者,通过在页面列表输入框10-132中输入页面列表10-1321(“pages/index”),并点击添加按钮10-133,在新呈现的页面列表输入框10-133中输入页面列表10-1331(“pages/detail”),此时,页面列表10-1321和页面列表10-1331为待编译页面列表。
S703、判断是否进行局部编译。如果否则执行S704,如果是则执行设置S705。
这里,如果局部编译的标识为“1”且获取到了待编译页面列表,则确定进行局部编译;否则确定进行全局编译。
S704、编译项目的所有代码文件(应用代码文件)。执行S708。
S705、确定局部编译的页面节点(目标页面节点)。
需要说明的是,从代码依赖关系图谱中确定与待编译页面列表对应的页面节点,也就确定了确定局部编译的页面节点。
参见图11,图11是本申请实施例提供的一种示例性的在图9中确定局部编译的页面节点的示意图;如图11所示,基于通过图10输入的待编译页面列表(以页面列表10-1321为例进行说明),在代码依赖关系图谱9-1,确定局部编译的页面节点11-1为页面节点“pages/index”。
S706、获取局部编译的页面节点的全部后代节点和项目节点的非页面节点的后代节点。
这里,局部编译的页面节点的全部后代节点和项目节点的非页面节点的后代节点,对应于上述的待编译代码节点。
参见图12,图12是本申请实施例提供的一种示例性的在图9中确定待编译代码节点的示意图;如图12所示,基于图11中局部编译的页面节点11-1,在代码依赖关系图谱9-1,确定页面节点11-1的全部后代节点12-1,为代码节点“index.js”、“index.wxml”和“index.wxss”;并确定应用节点12-2的非页面节点的后代节点12-3,为代码节点“app.js”和“app.wxss”。
S707、编译局部编译的页面节点的全部后代节点对应的代码文件、以及项目节点的非页面节点的后代节点对应的代码文件。
这里,局部编译的页面节点的全部后代节点对应的代码文件、以及项目节点的非页面节点的后代节点对应的代码文件,对应于上述的待编译代码文件。
参见图13,图13是本申请实施例提供的一种示例性的待编译代码文件的示意图;如图13所示,基于图12确定的后代节点12-1和后代节点12-3,确定代码文件列表13-1(待编译代码文件)。
参见图14,图14是本申请实施例提供的一种示例性的呈现局部编译提示信息的示意图;如图14所述,局部编译过程中,页面的标题处呈现有提示信息14-1(“【局部编译】pages/…”,对应于上述的局部编译标题提示信息),开发页面(待查看页面)处呈现有提示信息14-2(“局部编译中”,对应于上述的局部编译状态提示信息)。
接着参见图15,图15是本申请实施例提供的一种示例的呈现代码包大小信息的示意图;如图15所示,当点击图14中的预览按钮14-3或真机调试按钮14-4时,则在页面15-1上呈现代码包大小信息的提示信息15-11(“局部编译生效,代码包549KB”);在页面15-1上还呈现有未编译代码文件数量的提示信息15-12(“编译提示:173”);在页面15-1上还呈现有用于进行预览和真机调试的二维码15-13。
S708、结束。
下面继续说明本申请实施例提供的信息编译装置455的实施为软件模块的示例性结构,在一些实施例中,如图2所示,存储在存储器450的信息编译装置455中的软件模块可以包括:
控件呈现模块4551,用于呈现局部编译控件,其中,所述局部编译控件用于设置待进行局部编译的页面节点;
节点获取模块4552,用于响应于作用在所述局部编译控件上的局部编译操作,获取待编译页面节点;
节点确定模块4553,用于从代码依赖关系中,获取与所述待编译页面节点对应的待编译代码节点,其中,所述代码依赖关系是基于代码文件之间的依赖关系构建出的代码文件对应节点之间的层级关系;
代码编译模块4554,用于编译所述待编译代码节点对应的待编译代码文件,获得编译代码;
页面呈现模块4555,用于基于所述编译代码,呈现所述待编译页面节点对应的待查看页面。
在本申请实施例中,信息编译装置455还包括关系构建模块4556,用于从应用代码文件中获取应用配置文件,其中,所述应用代码文件为待开发功能应用的全部代码文件;从所述应用代码文件中获取与所述应用配置文件同名的第一同名代码文件,并读取所述应用配置文件,获得页面配置文件;从所述应用代码文件中获取与所述页面配置文件同名的第二同名代码文件,并获取所述第二同名代码文件中的代码引用信息所对应的依赖代码文件;基于所述页面配置文件的名称确定页面节点,并将所述第二同名代码文件对应的节点和所述依赖代码文件对应的节点确定为所述页面节点的后代节点;基于所述应用配置文件的名称确定应用节点,并将所述第一同名代码文件对应的节点和所述页面节点确定为所述应用节点的后代节点,其中,所述代码依赖关系为所述应用节点、所述第一同名代码文件对应的节点、所述页面节点、所述第二同名代码文件对应的节点和所述依赖代码文件对应的节点的层级关系。
在本申请实施例中,所述节点确定模块4553,还用于从所述代码依赖关系中,确定与所述待编译页面节点对应的目标页面节点;从所述代码依赖关系中,获取所述目标页面节点的后代节点;获取所述目标页面节点的父节点,得到应用节点,并从所述代码依赖关系中,获取所述应用节点所引用的非页面节点,得到第一同名代码文件对应的节点;将所述目标页面节点的后代节点和所述第一同名代码文件对应的节点,确定为所述待编译代码节点。
在本申请实施例中,所述控件呈现模块4551,还用于呈现局部编译开关控件,其中,所述局部编译开关控件用于设置代码文件的编译模式;响应于作用在所述局部编译开关控件上的局部编译开启操作,呈现所述局部编译控件。
在本申请实施例中,所述控件呈现模块4551,还用于响应于作用在所述局部编译开关控件上的局部编译关闭操作,隐藏所述局部编译控件,并编译应用代码文件;基于编译后的应用代码文件,呈现所述待查看页面。
在本申请实施例中,所述代码编译模块4554,还用于在基于呈现的所述局部编译控件未获取到所述待编译页面节点时,编译应用代码文件,并基于编译后的应用代码文件,呈现所述待查看页面。
在本申请实施例中,所述节点获取模块4552,还用于响应于作用在待编译主节点输入控件上的待编译主节点输入操作,获取待编译主页面节点;响应于作用在节点添加控件上的节点添加操作,呈现待编译关联节点输入控件;响应于作用在所述待编译关联节点输入控件上的待编译关联节点输入操作,获得待编译关联页面节点,其中,所述局部编译控件包括所述待编译主节点输入控件和所述节点添加控件,所述局部编译操作包括所述待编译主节点输入操作和所述节点添加操作;将所述待编译主页面节点和所述待编译关联页面节点,确定为所述待编译节点。
在本申请实施例中,信息编译装置455还包括信息提示模块4557,用于在基于所述待编译页面节点进行编译时,呈现局部编译提示信息,其中,所述局部编译提示信息包括局部编译标题提示信息和局部编译状态提示信息中的至少一种。
在本申请实施例中,信息编译装置455还包括代码打包模块4558,用于呈现打包控件,其中,所述打包控件为预览控件或真机调试控件;响应于作用在所述打包控件上的打包操作,打包所述编译代码,获得代码包;呈现所述代码包的大小信息,并向服务设备发送所述代码包,以对所述待编译代码文件进行预览或真机调试。
在本申请实施例中,所述待查看页面为子程序页面。
本申请实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行本申请实施例上述的信息编译方法。
本申请实施例提供一种存储有可执行指令的计算机可读存储介质,其中存储有可执行指令,当可执行指令被处理器执行时,将引起处理器执行本申请实施例提供的信息编译方法,例如,如图3示出的信息编译方法。
在一些实施例中,计算机可读存储介质可以是FRAM、ROM、PROM、EPROM、EEPROM、闪存、磁表面存储器、光盘、或CD-ROM等存储器;也可以是包括上述存储器之一或任意组合的各种设备。
在一些实施例中,可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。
作为示例,可执行指令可以但不一定对应于文件系统中的文件,可以可被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(HTML,Hyper TextMarkup Language)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。
作为示例,可执行指令可被部署为在一个计算机设备上执行,或者在位于一个地点的多个计算机设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算机设备上执行。
综上所述,本申请实施例通过预先分析代码文件之间的依赖关系而构建出代码依赖关系,使得编译代码文件时,从该代码依赖关系获取呈现待查看页面所必备的代码文件(待编译代码文件),通过编译该必备的代码文件就能实时待查看页面的呈现,从而,能够提升信息编译的效率。另外,还能够减少打包的代码文件,提升代码包的上传效率。
以上所述,仅为本申请的实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本申请的保护范围之内。
Claims (13)
1.一种信息编译方法,其特征在于,包括:
呈现局部编译控件,其中,所述局部编译控件用于设置待进行局部编译的页面节点;
响应于作用在所述局部编译控件上的局部编译操作,获取待编译页面节点;
从代码依赖关系中,获取与所述待编译页面节点对应的待编译代码节点,其中,所述代码依赖关系是基于代码文件之间的依赖关系构建出的代码文件对应节点之间的层级关系;
编译所述待编译代码节点对应的待编译代码文件,获得编译代码;
基于所述编译代码,呈现所述待编译页面节点对应的待查看页面。
2.根据权利要求1所述的方法,其特征在于,所述从代码依赖关系中,获取与所述待编译页面节点对应的待编译代码节点之前,所述方法还包括:
从应用代码文件中获取应用配置文件,其中,所述应用代码文件为待开发功能应用的全部代码文件;
从所述应用代码文件中获取与所述应用配置文件同名的第一同名代码文件,并读取所述应用配置文件,获得页面配置文件;
从所述应用代码文件中获取与所述页面配置文件同名的第二同名代码文件,并获取所述第二同名代码文件中的代码引用信息所对应的依赖代码文件;
基于所述页面配置文件的名称确定页面节点,并将所述第二同名代码文件对应的节点和所述依赖代码文件对应的节点确定为所述页面节点的后代节点;
基于所述应用配置文件的名称确定应用节点,并将所述第一同名代码文件对应的节点和所述页面节点确定为所述应用节点的后代节点,其中,所述代码依赖关系为所述应用节点、所述第一同名代码文件对应的节点、所述页面节点、所述第二同名代码文件对应的节点和所述依赖代码文件对应的节点的层级关系。
3.根据权利要求1或2所述的方法,其特征在于,所述从代码依赖关系中,获取与所述待编译页面节点对应的待编译代码节点,包括:
从所述代码依赖关系中,确定与所述待编译页面节点对应的目标页面节点;
从所述代码依赖关系中,获取所述目标页面节点的后代节点;
获取所述目标页面节点的父节点,得到应用节点,并从所述代码依赖关系中,获取所述应用节点所引用的非页面节点,得到第一同名代码文件对应的节点;
将所述目标页面节点的后代节点和所述第一同名代码文件对应的节点,确定为所述待编译代码节点。
4.根据权利要求1或2所述的方法,其特征在于,所述呈现局部编译控件,包括:
呈现局部编译开关控件,其中,所述局部编译开关控件用于设置代码文件的编译模式;
响应于作用在所述局部编译开关控件上的局部编译开启操作,呈现所述局部编译控件。
5.根据权利要求4所述的方法,其特征在于,所述响应于作用在所述局部编译开关控件上的局部编译开启操作,呈现所述局部编译控件之后,所述方法还包括:
响应于作用在所述局部编译开关控件上的局部编译关闭操作,隐藏所述局部编译控件,并编译应用代码文件;
基于编译后的应用代码文件,呈现所述待查看页面。
6.根据权利要求1或2所述的方法,其特征在于,所述呈现局部编译控件之后,所述方法还包括:
在基于呈现的所述局部编译控件未获取到所述待编译页面节点时,编译应用代码文件,并基于编译后的应用代码文件,呈现所述待查看页面。
7.根据权利要求1或2所述的方法,其特征在于,所述响应于作用在所述局部编译控件上的局部编译操作,获取待编译页面节点,包括:
响应于作用在待编译主节点输入控件上的待编译主节点输入操作,获取待编译主页面节点;
响应于作用在节点添加控件上的节点添加操作,呈现待编译关联节点输入控件;
响应于作用在所述待编译关联节点输入控件上的待编译关联节点输入操作,获得待编译关联页面节点,其中,所述局部编译控件包括所述待编译主节点输入控件和所述节点添加控件,所述局部编译操作包括所述待编译主节点输入操作和所述节点添加操作;
将所述待编译主页面节点和所述待编译关联页面节点,确定为所述待编译节点。
8.根据权利要求1或2所述的方法,其特征在于,所述响应于作用在所述局部编译控件上的局部编译操作,获取待编译页面节点之后,所述方法还包括:
在基于所述待编译页面节点进行编译时,呈现局部编译提示信息,其中,所述局部编译提示信息包括局部编译标题提示信息和局部编译状态提示信息中的至少一种。
9.根据权利要求1或2所述的方法,其特征在于,所述基于所述编译代码,呈现所述待编译页面节点对应的待查看页面之后,所述方法还包括:
呈现打包控件,其中,所述打包控件为预览控件或真机调试控件;
响应于作用在所述打包控件上的打包操作,打包所述编译代码,获得代码包;
呈现所述代码包的大小信息,并向服务设备发送所述代码包,以对所述待编译代码文件进行预览或真机调试。
10.根据权利要求1或2所述的方法,其特征在于,所述待查看页面为子程序页面。
11.一种信息编译装置,其特征在于,包括:
控件呈现模块,用于呈现局部编译控件,其中,所述局部编译控件用于设置待进行局部编译的页面节点;
节点获取模块,用于响应于作用在所述局部编译控件上的局部编译操作,获取待编译页面节点;
节点确定模块,用于从代码依赖关系中,获取与所述待编译页面节点对应的待编译代码节点,其中,所述代码依赖关系是基于代码文件之间的依赖关系构建出的代码文件对应节点之间的层级关系;
代码编译模块,用于编译所述待编译代码节点对应的待编译代码文件,获得编译代码;
页面呈现模块,用于基于所述编译代码,呈现所述待编译页面节点对应的待查看页面。
12.一种信息编译设备,其特征在于,包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现权利要求1至10任一项所述的信息编译方法。
13.一种计算机可读存储介质,其特征在于,存储有可执行指令,用于被处理器执行时,实现权利要求1至10任一项所述的信息编译方法。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110593334.4A CN115407977A (zh) | 2021-05-28 | 2021-05-28 | 一种信息编译方法、装置、设备及计算机可读存储介质 |
EP22810323.0A EP4280048A1 (en) | 2021-05-28 | 2022-05-05 | Page rendering method and apparatus, electronic device, computer-readable storage medium, and computer program product |
PCT/CN2022/090979 WO2022247594A1 (zh) | 2021-05-28 | 2022-05-05 | 一种页面呈现方法、装置、电子设备、计算机可读存储介质、及计算机程序产品 |
US18/189,194 US20230229406A1 (en) | 2021-05-28 | 2023-03-23 | Page rendering method, apparatus, electronic device, computer-readable storage medium, and computer program product |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110593334.4A CN115407977A (zh) | 2021-05-28 | 2021-05-28 | 一种信息编译方法、装置、设备及计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115407977A true CN115407977A (zh) | 2022-11-29 |
Family
ID=84156083
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110593334.4A Pending CN115407977A (zh) | 2021-05-28 | 2021-05-28 | 一种信息编译方法、装置、设备及计算机可读存储介质 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20230229406A1 (zh) |
EP (1) | EP4280048A1 (zh) |
CN (1) | CN115407977A (zh) |
WO (1) | WO2022247594A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116126348A (zh) * | 2023-04-17 | 2023-05-16 | 函子科技(杭州)有限公司 | 一种实时预览的低代码应用程序的文件编译方法 |
CN116955279A (zh) * | 2023-09-19 | 2023-10-27 | 腾讯科技(深圳)有限公司 | 一种文件上传方法、装置、设备及存储介质 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117130622B (zh) * | 2023-10-26 | 2024-01-12 | 合肥综合性国家科学中心人工智能研究院(安徽省人工智能实验室) | 一种分布式在线代码编译运行方法及系统 |
CN117234513B (zh) * | 2023-11-15 | 2024-03-08 | 腾讯科技(深圳)有限公司 | 页面的数据文件生成方法、装置、电子设备、介质及产品 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8443345B2 (en) * | 2008-11-26 | 2013-05-14 | International Business Machines Corporation | Dynamic processing of embedded compiled programming language code |
CN106843869B (zh) * | 2017-01-16 | 2020-04-14 | 百融云创科技股份有限公司 | 一种前端开发工程化系统和方法 |
CN109375921A (zh) * | 2018-08-15 | 2019-02-22 | 中国平安人寿保险股份有限公司 | 页面文件快速编译方法、装置及存储设备、计算机设备 |
CN110795353B (zh) * | 2019-10-29 | 2023-10-13 | 北京小米移动软件有限公司 | 快应用的调试方法、装置、设备及存储介质 |
CN111045683A (zh) * | 2019-12-13 | 2020-04-21 | 深圳前海微众银行股份有限公司 | 小程序代码编译方法、装置、设备及介质 |
-
2021
- 2021-05-28 CN CN202110593334.4A patent/CN115407977A/zh active Pending
-
2022
- 2022-05-05 WO PCT/CN2022/090979 patent/WO2022247594A1/zh unknown
- 2022-05-05 EP EP22810323.0A patent/EP4280048A1/en active Pending
-
2023
- 2023-03-23 US US18/189,194 patent/US20230229406A1/en active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116126348A (zh) * | 2023-04-17 | 2023-05-16 | 函子科技(杭州)有限公司 | 一种实时预览的低代码应用程序的文件编译方法 |
CN116126348B (zh) * | 2023-04-17 | 2023-07-07 | 函子科技(杭州)有限公司 | 一种实时预览的低代码应用程序的文件编译方法 |
CN116955279A (zh) * | 2023-09-19 | 2023-10-27 | 腾讯科技(深圳)有限公司 | 一种文件上传方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
US20230229406A1 (en) | 2023-07-20 |
WO2022247594A1 (zh) | 2022-12-01 |
EP4280048A1 (en) | 2023-11-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3605324B1 (en) | Application development method and tool, and storage medium thereof | |
CN115407977A (zh) | 一种信息编译方法、装置、设备及计算机可读存储介质 | |
Lee | Beginning android 4 application Development | |
Shah et al. | Reverse-engineering user interfaces to facilitateporting to and across mobile devices and platforms | |
CN114036439A (zh) | 网站搭建方法、装置、介质及电子设备 | |
CN114065080A (zh) | 页面渲染方法、装置、设备及计算机可读存储介质 | |
Gassner | Flash Builder 4 and Flex 4 Bible | |
Botturi et al. | Model-driven design for the development of multi-platform smartphone applications | |
CN115113850A (zh) | 一种跨平台应用的构建、运行方法、服务器、终端和系统 | |
CN116166907B (zh) | 一种使用WebAssembly和服务页面编译技术开发Web应用的方法及装置 | |
Khanna et al. | Ionic: Hybrid Mobile App Development | |
Sams | Selenium Essentials | |
Jaygarl et al. | Professional Tizen Application Development | |
Burnette | Google web toolkit | |
NOVAC et al. | Comparison of Hybrid Cross-Platform Mobile Applications with Native Cross-Platform Applications. | |
Müller | Web technologies on the desktop: an early look at Flutter | |
CN111427770A (zh) | 一种资源测试方法及相关设备 | |
AFREEN | Mobile Applications Development | |
Smyth | Android Studio 3.4 Development Essentials-Kotlin Edition | |
CN117555645B (zh) | 基于多端应用平台的数据处理方法、装置、设备及介质 | |
Alymkulov | Desktop Application Development Using Electron Framework: Native vs. Cross-Platform | |
Del Sole et al. | Running and debugging code | |
Xiao et al. | A Weibo APP Design Based on Eclipse and Android Platforms | |
Παύλοζας | Internet technologies for the development of compatible applications on different computing platforms | |
Patel | Sitecore Cookbook for Developers |
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 |