CN111427583A - 组件的编译方法、装置和电子设备及计算机可读存储介质 - Google Patents
组件的编译方法、装置和电子设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN111427583A CN111427583A CN202010282672.1A CN202010282672A CN111427583A CN 111427583 A CN111427583 A CN 111427583A CN 202010282672 A CN202010282672 A CN 202010282672A CN 111427583 A CN111427583 A CN 111427583A
- Authority
- CN
- China
- Prior art keywords
- component
- compiled
- compiling
- code
- codes
- 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
- 238000000034 method Methods 0.000 title claims abstract description 74
- 238000012545 processing Methods 0.000 claims abstract description 18
- 238000013507 mapping Methods 0.000 claims description 15
- 238000004891 communication Methods 0.000 claims description 5
- 238000013500 data storage Methods 0.000 claims description 5
- 238000004590 computer program Methods 0.000 claims description 4
- 230000000712 assembly Effects 0.000 claims description 3
- 238000000429 assembly Methods 0.000 claims description 3
- 230000008569 process Effects 0.000 abstract description 15
- 238000011161 development Methods 0.000 abstract description 14
- 230000006870 function Effects 0.000 description 9
- 238000005516 engineering process Methods 0.000 description 6
- 238000006243 chemical reaction Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 3
- 238000005034 decoration Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000011022 operating instruction Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 235000019800 disodium phosphate Nutrition 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
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
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本申请实施例提供了一种组件的编译方法、装置和电子设备及计算机可读存储介质。该方法包括:当通过当前编译平台对代码进行编译时,确定代码中的待编译组件;若待编译组件为原生组件,则对待编译组件的代码中与当前编译平台对应的代码进行编译;若待编译组件为通用组件,则基于预设规则对待编译组件的代码进行处理,并对处理后的代码进行编译。基于申请中提供的方案,在编译过程中对各待编译组件对应的代码进行处理,使得代码能够在不同的编译平台上编译以及运行,实现了提供一套代码来支持不同编译平台,减少了开发成本,提高了代码的交付效率。
Description
技术领域
本申请涉及计算机技术领域,具体而言,本申请涉及一种组件的编译方法、装置和电子设备及计算机可读存储介质。
背景技术
目前,随着前端技术的快速发展,前端提供的编译平台也越来越多,如桌面端网页(Web)、移动端网页(web)、小程序以及应用程序(Application,APP)等。前端开发过程中,对业务功能多进行组件化开发,各业务功能的代码被分别封装为组件。
现有技术中,组件是针对各种编译平台的功能单独开发的,不同编译平台之间的组件无法适配,因此,为了实现代码向多种编译平台的投放,开发过程中需要对各种编译平台重复地进行组件开发,导致开发成本高,代码的交付效率低。
发明内容
本申请的目的旨在至少能解决上述的技术缺陷之一。本申请所采用的技术方案如下:
第一方面,本申请实施例提供了一种组件的编译方法,该方法包括:
当通过当前编译平台对代码进行编译时,确定代码中的待编译组件;
若待编译组件为原生组件,则对待编译组件的代码中与当前编译平台对应的代码进行编译;
若待编译组件为通用组件,则基于预设规则对待编译组件的代码进行处理,并对处理后的代码进行编译。
可选地,对待编译组件的代码中与当前编译平台对应的代码进行编译,包括:
基于预设置的编译平台类型与待编译组件的代码的对应关系,确定待编译组件的代码中与当前编译平台对应的代码;
对待编译组件的代码中与当前编译平台对应的代码进行编译。
可选地,通用组件包括UI组件以及非展示组件。
可选地,若通用组件为UI组件,则基于预设规则对待编译组件的代码进行处理,包括:
针对待编译组件中的模板代码,基于预设的第一映射关系,将模板代码中的方法名替换为对应的方法名,并将模板代码中的变量名替换为对应的变量名;
针对待编译组件中的语法代码,基于预设的第二映射关系,将语法代码中的词法替换为对应的词法,并将语法代码中的语法替换为对应的语法。
可选地,若通用组件为非展示组件,则基于预设规则对待编译组件的代码进行处理,包括:
基于当前编译平台对应的接口参数规则,对非展示组件的代码中的接口参数进行转换。
可选地,非展示组件包括:
网络通讯组件;
数据存储读取组件;以及,
设备接口调用组件。
第二方面,本申请实施例提供了一种组件的编译装置,该装置包括:
组件确定模块,用于在通过当前编译平台对代码进行编译时,确定代码中的待编译组件;
第一编译模块,用于在待编译组件为原生组件时,对待编译组件的代码中与当前编译平台对应的代码进行编译;
第二编译模块,用于在待编译组件为通用组件时,基于预设规则对待编译组件的代码进行处理,并对处理后的代码进行编译。
可选地,第一编译模块在对待编译组件的代码中与当前编译平台对应的代码进行编译时,具体用于:
基于预设置的编译平台类型与待编译组件的代码的对应关系,确定待编译组件的代码中与当前编译平台对应的代码;
对待编译组件的代码中与当前编译平台对应的代码进行编译。
可选地,通用组件包括UI组件以及非展示组件。
可选地,第二编译模块在基于预设规则对待编译组件的代码进行处理,具体用于:
若通用组件为UI组件,则针对待编译组件中的模板代码,基于预设的第一映射关系,将模板代码中的方法名替换为对应的方法名,并将模板代码中的变量名替换为对应的变量名;针对待编译组件中的语法代码,基于预设的第二映射关系,将语法代码中的词法替换为对应的词法,并将语法代码中的语法替换为对应的语法。
可选地,第二编译模块在基于预设规则对待编译组件的代码进行处理,具体用于:
若通用组件为非展示组件,则基于当前编译平台对应的接口参数规则,对非展示组件的代码中的接口参数进行转换。
可选地,非展示组件包括:
网络通讯组件;
数据存储读取组件;以及,
设备接口调用组件。
第三方面,本申请实施例提供了一种电子设备,该电子设备包括:处理器和存储器;
存储器,用于存储操作指令;
处理器,用于通过调用操作指令,执行如本申请的第一方面的任一实施方式中所示的组件的编译方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本申请的第一方面的任一实施方式中所示的组件的编译方法。
本申请实施例提供的技术方案带来的有益效果是:
本申请实施例中提供的方案,在对代码进行编译时,针对待编译组件中的原生组件,在代码中选择当前编译平台对应的组件代码进行编译;针对待编译组件中的通用组件,对通用组件对应的代码进行处理,使得通用组件对应的代码在处理后能够在当前编译平台上运行。基于方案,在编译过程中对各待编译组件对应的代码进行处理,使得代码能够在不同的编译平台上编译以及运行,实现了提供一套代码来支持不同编译平台,减少了开发成本,提高了代码的交付效率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对本申请实施例描述中所需要使用的附图作简单地介绍。
图1为本申请实施例提供的一种组件的编译方法的流程示意图;
图2为本申请实施例提供的一种由VUE编写的移动端UI组件编译为微信小程序UI组件的流程示意图;
图3为本申请实施例提供的一种由VUE编写的移动端UI组件编译为桌面端UI组件的流程示意图;
图4为本申请实施例提供的一种组件的编译装置的结构示意图;
图5为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能解释为对本发明的限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。
图1示出了本申请实施例提供的一种组件的编译方法的流程示意图,如图1所示,该方法主要可以包括:
步骤S110:当通过当前编译平台对代码进行编译时,确定代码中的待编译组件;
本申请实施例中提供的一套跨平台代码,能够实现在桌面端Web、移动端Web、小程序以及APP等不同编译平台中运行。
本申请实施例中,在进行代码的编译时,可以确定出代码中待编译组件,对各待编译组件进行处理,使得待编译组件能够在当前编译平台上进行编译。
步骤S120:若待编译组件为原生组件,则对待编译组件的代码中与当前编译平台对应的代码进行编译。
原生组件为使用特定平台技术框架开发完成的组件,只能在特定平台内运行。
本申请实施例中,在对代码中的原生组件进行开发时,可以使用各编译平台原生的技术框架完成组件的开发,即针对不同的编译平台分别进行原生组件的开发。对应各编译平台的原生组件遵循以下原则:组件处理的业务逻辑应保持一致;组件的命名应保持一致;组件对外暴露的属性及事件名称应保持一致;以及,组件与外部交互时的数据参数及结构应保持一致。
本申请实施例中,代码中存在有当前编译平台对应的代码,可以将与当前编译平台对应的代码进行条件编译。
步骤S130:若待编译组件为通用组件,则基于预设规则对待编译组件的代码进行处理,并对处理后的代码进行编译。
本申请实施例中,通用组件是指通过某一个技术栈开发完成的组件,通过前端工程化编译技术,可以编译构建到不同平台进行运行的组件。
本申请实施例中,在对通用组件进行编译时,可以基于预设的规则对待编译组件的代码进行处理,使得处理后的待编译组件的代码能够在当前编译平台上运行。
本申请实施例中提供的方法,在对代码进行编译时,针对待编译组件中的原生组件,在代码中选择当前编译平台对应的组件代码进行编译;针对待编译组件中的通用组件,对通用组件对应的代码进行处理,使得通用组件对应的代码在处理后能够在当前编译平台上运行。基于方案,在编译过程中对各待编译组件对应的代码进行处理,使得代码能够在不同的编译平台上编译以及运行,实现了提供一套代码来支持不同编译平台,减少了开发成本,提高了代码的交付效率。
本申请实施例的一种可选方式中,对待编译组件的代码中与当前编译平台对应的代码进行编译,包括:
基于预设置的编译平台类型与待编译组件的代码的对应关系,确定待编译组件的代码中与当前编译平台对应的代码;
对待编译组件的代码中与当前编译平台对应的代码进行编译。
本申请实施例中,代码中存在原生组件与各种编译平台对应的代码,可以预设置编译平台类型与原生组件代码的对应关系,基于对应关系以及当前编译平台的编译平台类型,确定出当前编译平台对应的代码,并对确定出的当前编译平台对应的组件代码进行条件编译。
通用组件包括用户界面(USER INTERFACE Module,UI)组件以及非展示组件。
本申请实施例的一种可选方式中,若通用组件为UI组件,则基于预设规则对待编译组件的代码进行处理,包括:
针对待编译组件中的模板代码,基于预设的第一映射关系,将模板代码中的方法名替换为对应的方法名,并将模板代码中的变量名替换为对应的变量名;
针对待编译组件中的语法代码,基于预设的第二映射关系,将语法代码中的词法替换为对应的词法,并将语法代码中的语法替换为对应的语法。
UI组件通常为功能页面中用户交互类的元素组件,例如按钮、列表、表单输入、菜单导航等。UI组件对于不同的编译平台都有对应的技术框架,这些技术框架都是基于超文本标记语言(HyperText Markup Language,HTML)、Javascript以及层叠样式表(CascadingStyle Sheets,CSS)这三种基础开发语言进行扩展或精简的,不同平台的开发技术框架有各自的组件开发规则,存在一定的同构性。
由于上述各技术框架存在同构性,所以可以使用某一种技术框架作为基础技术栈进行组件的开发,在前端编译时,通过编写编译脚本,将该技术框架编写的组件代码,转换成另一种技术框架可以运行的组件,从而实现跨平台使用。
具体而言,在组件代码转换时,针对待编译组件中的模板代码,涉及模板代码中的方法名的转换,以及变量名的转化。因此,可以预设置第一映射关系,将各编译平台对应代码中的方法名建立映射,将各编译平台对应代码中的变量名建立映射。
针对待编译组件中的语法类代码,涉及模板代码中的词法的转换,以及语法的转化。因此,可以预设置第二映射关系,将各编译平台对应代码中的词法建立映射,将各编译平台对应代码中的语法建立映射。
在对通过组件中的UI组件进行编译时,可以将UI组件对应代码中的模板类代码以及语法类代码分别进行替换,得到可以在当前编译平台上进行编译的UI组件的代码。
作为一个示例,移动Web端与桌面Web端组件的模板转换,主要涉及小屏向大屏的适配,因此需要对组件样式类(class)属性进行替换,对模板文档对象模型(DocumentObject Model,DOM)的层级进行替换。
作为另一个示例,移动Web端组件与小程序组件的模板转换,由于屏幕及客户体验是一致的,但是两者的标签语法不同,因此需要对模板标签及模板属性进行替换。
在实际使用中,可以使用抽象语法树(AST)工具,分析组件的代码结构。
作为一个示例,图2中示出了一种由VUE编写的移动端UI组件编译为微信小程序UI组件的流程示意图。
如图2中所示,对VUE组件进行解析,分离出模板(Template)代码、逻辑脚本(Script)代码以及样式Style代码。
对于HTML格式的模板Template,可以使用AST进行分析,对模板标签、属性等进行映射替换,替换后可以得到微信标记语言(WeiXin Markup Language,WXML)格式的模板Template,如将<div>替换为<view>。
对于Javascript格式的逻辑Script,可以使用AST进行分析,对逻辑中的语法和词法进行替换,可以得到微信脚本(WeiXin Script,WXS)格式的逻辑Script,如将let x替换为var x。
对于CSS格式的样式Style,可以使用AST进行分析,对样式中的语法和词法进行替换,如将1px替换为1.81rpx。由此得到微信样式表(WeiXin Style Sheets,WXSS)格式的样式Style。
将替换后的模板、逻辑以及样式进行组合,得到微信小程序组件。
作为一个示例,图3中示出了一种由VUE编写的移动端UI组件编译为桌面端UI组件的流程示意图。
如图3中所示,移动端VUE组件即由VUE编写的移动端UI组件,在编译时,对移动端VUE组件进行解析,分离出模板(Template)代码、逻辑脚本(Script)代码以及样式Style代码。
对于HTML格式的模板Template,可以使用AST进行分析,对模板属性及Dom层级进行替换,例如,将<div class=“mobile”></div>替换为<div><div class=“desktop”></div></div>。
对于Javascript格式的逻辑Script,由于语法及逻辑相同无需替换。
对于CSS格式的样式Style,可以使用AST进行分析,针对移动和桌面端特点,对样式中的逻辑进行转换,如将1px替换为10px。
将替换后的模板、样式与未做处理逻辑进行组合,得到桌面端VUE组件。
本申请实施例的一种可选方式中,若通用组件为非展示组件,则基于预设规则对待编译组件的代码进行处理,包括:
基于当前编译平台对应的接口参数规则,对非展示组件的代码中的接口参数进行转换。
本申请实施例中的非展示组件可以为一些对数据或设备操作类的组件,例如用于网络通讯、数据存储读取,设备接口调用等的组件。为了实现跨平台运行,在对非展示组件开发时,需要定义统一的方法名称、输入参数以及输出参数。在编译时根据不同编译平台的接口参数规则进行转换,使得接口参数符合各编译平台的规范。
以数据请求组件为例,在开发时可以定义统一的数据请求方法requestData。在Web端中使用AJAX技术完成数据请求,在APP中使用设备桥接口完成数据请求,在小程序中使用小程序平台的request接口完成数据请求,再按上述数据请求规则对输入参数和输出参数进行转换,从而完成数据请求技术组件的实现,开发人员使用时调用requestData即可,无需关心编译平台的差异。
在实际使用中,代码中可能还存在一些业务组件,一般包含多个UI组件或者非展示组件,可以其包含的UI组件或者非展示组件为粒度,基于本申请通过的编译方法进行编译。
基于与图1中所示的方法相同的原理,图4示出了本申请实施例提供的一种组件的编译装置的结构示意图,如图4所示,该编译装置20可以包括:
组件确定模块210,用于在通过当前编译平台对代码进行编译时,确定代码中的待编译组件;
第一编译模块220,用于在待编译组件为原生组件时,对待编译组件的代码中与当前编译平台对应的代码进行编译;
第二编译模块230,用于在待编译组件为通用组件时,基于预设规则对待编译组件的代码进行处理,并对处理后的代码进行编译。
本申请实施例中提供的装置,在对代码进行编译时,针对待编译组件中的原生组件,在代码中选择当前编译平台对应的组件代码进行编译;针对待编译组件中的通用组件,对通用组件对应的代码进行处理,使得通用组件对应的代码在处理后能够在当前编译平台上运行。基于方案,在编译过程中对各待编译组件对应的代码进行处理,使得代码能够在不同的编译平台上编译以及运行,实现了提供一套代码来支持不同编译平台,减少了开发成本,提高了代码的交付效率。
可选地,第一编译模块在对待编译组件的代码中与当前编译平台对应的代码进行编译时,具体用于:
基于预设置的编译平台类型与待编译组件的代码的对应关系,确定待编译组件的代码中与当前编译平台对应的代码;
对待编译组件的代码中与当前编译平台对应的代码进行编译。
可选地,通用组件包括用户界面UI组件以及非展示组件。
可选地,第二编译模块在基于预设规则对待编译组件的代码进行处理,具体用于:
若通用组件为UI组件,则针对待编译组件中的模板代码,基于预设的第一映射关系,将模板代码中的方法名替换为对应的方法名,并将模板代码中的变量名替换为对应的变量名;针对待编译组件中的语法代码,基于预设的第二映射关系,将语法代码中的词法替换为对应的词法,并将语法代码中的语法替换为对应的语法。
可选地,第二编译模块在基于预设规则对待编译组件的代码进行处理,具体用于:
若通用组件为非展示组件,则基于当前编译平台对应的接口参数规则,对非展示组件的代码中的接口参数进行转换。
可选地,非展示组件包括:
网络通讯组件;
数据存储读取组件;以及,
设备接口调用组件。
可以理解的是,本实施例中的组件的编译装置的上述各模块具有实现图1中所示的实施例中的组件的编译方法相应步骤的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块。上述模块可以是软件和/或硬件,上述各模块可以单独实现,也可以多个模块集成实现。对于上述组件的编译装置的各模块的功能描述具体可以参见图1中所示实施例中的组件的编译方法的对应描述,在此不再赘述。
本申请实施例提供了一种电子设备,包括处理器和存储器;
存储器,用于存储操作指令;
处理器,用于通过调用操作指令,执行本申请任一实施方式中所提供的组件的编译方法。
作为一个示例,图5示出了本申请实施例所适用的一种电子设备的结构示意图,如图5所示,该电子设备2000包括:处理器2001和存储器2003。其中,处理器2001和存储器2003相连,如通过总线2002相连。可选的,电子设备2000还可以包括收发器2004。需要说明的是,实际应用中收发器2004不限于一个,该电子设备2000的结构并不构成对本申请实施例的限定。
其中,处理器2001应用于本申请实施例中,用于实现上述方法实施例所示的方法。收发器2004可以包括接收机和发射机,收发器2004应用于本申请实施例中,用于执行时实现本申请实施例的电子设备与其他设备通信的功能。
处理器2001可以是CPU(Central Processing Unit,中央处理器),通用处理器,DSP(Digital Signal Processor,数据信号处理器),ASIC(Application SpecificIntegrated Circuit,专用集成电路),FPGA(Field Programmable Gate Array,现场可编程门阵列)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器2001也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等。
总线2002可包括一通路,在上述组件之间传送信息。总线2002可以是PCI(Peripheral Component Interconnect,外设部件互连标准)总线或EISA(ExtendedIndustry Standard Architecture,扩展工业标准结构)总线等。总线2002可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器2003可以是ROM(Read Only Memory,只读存储器)或可存储静态信息和指令的其他类型的静态存储设备,RAM(Random Access Memory,随机存取存储器)或者可存储信息和指令的其他类型的动态存储设备,也可以是EEPROM(Electrically ErasableProgrammable Read Only Memory,电可擦可编程只读存储器)、CD-ROM(Compact DiscRead Only Memory,只读光盘)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。
可选的,存储器2003用于存储执行本申请方案的应用程序代码,并由处理器2001来控制执行。处理器2001用于执行存储器2003中存储的应用程序代码,以实现本申请任一实施方式中所提供的组件的编译方法。
本申请实施例提供的电子设备,适用于上述方法任一实施例,在此不再赘述。
本申请实施例提供了一种电子设备,与现有技术相比,在对代码进行编译时,针对待编译组件中的原生组件,在代码中选择当前编译平台对应的组件代码进行编译;针对待编译组件中的通用组件,对通用组件对应的代码进行处理,使得通用组件对应的代码在处理后能够在当前编译平台上运行。基于方案,在编译过程中对各待编译组件对应的代码进行处理,使得代码能够在不同的编译平台上编译以及运行,实现了提供一套代码来支持不同编译平台,减少了开发成本,提高了代码的交付效率。
本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该程序被处理器执行时实现上述方法实施例所示的组件的编译方法。
本申请实施例提供的计算机可读存储介质,适用于上述方法任一实施例,在此不再赘述。
本申请实施例提供了一种计算机可读存储介质,与现有技术相比,在对代码进行编译时,针对待编译组件中的原生组件,在代码中选择当前编译平台对应的组件代码进行编译;针对待编译组件中的通用组件,对通用组件对应的代码进行处理,使得通用组件对应的代码在处理后能够在当前编译平台上运行。基于方案,在编译过程中对各待编译组件对应的代码进行处理,使得代码能够在不同的编译平台上编译以及运行,实现了提供一套代码来支持不同编译平台,减少了开发成本,提高了代码的交付效率。
应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
以上所述仅是本发明的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (10)
1.一种组件的编译方法,其特征在于,包括:
当通过当前编译平台对代码进行编译时,确定所述代码中的待编译组件;
若所述待编译组件为原生组件,则对所述待编译组件的代码中与所述当前编译平台对应的代码进行编译;
若所述待编译组件为通用组件,则基于预设规则对所述待编译组件的代码进行处理,并对处理后的代码进行编译。
2.根据权利要求1所述的方法,其特征在于,所述对所述待编译组件的代码中与所述当前编译平台对应的代码进行编译,包括:
基于预设置的编译平台类型与所述待编译组件的代码的对应关系,确定所述待编译组件的代码中与所述当前编译平台对应的代码;
对所述待编译组件的代码中与所述当前编译平台对应的代码进行编译。
3.根据权利要求1所述的方法,其特征在于,所述通用组件包括用户界面UI组件以及非展示组件。
4.根据权利要求3所述的方法,其特征在于,若所述通用组件为UI组件,所述基于预设规则对所述待编译组件的代码进行处理,包括:
针对所述待编译组件中的模板代码,基于预设的第一映射关系,将所述模板代码中的方法名替换为对应的方法名,并将所述模板代码中的变量名替换为对应的变量名;
针对所述待编译组件中的语法代码,基于预设的第二映射关系,将所述语法代码中的词法替换为对应的词法,并将所述语法代码中的语法替换为对应的语法。
5.根据权利要求3所述的方法,其特征在于,若所述通用组件为非展示组件,所述则基于预设规则对所述待编译组件的代码进行处理,包括:
基于所述当前编译平台对应的接口参数规则,对所述非展示组件的代码中的接口参数进行转换。
6.根据权利要求3-5中任一项所述的方法,其特征在于,所述非展示组件包括:
网络通讯组件;
数据存储读取组件;以及,
设备接口调用组件。
7.一种组件的编译装置,其特征在于,包括:
组件确定模块,用于在通过当前编译平台对代码进行编译时,确定所述代码中的待编译组件;
第一编译模块,用于在所述待编译组件为原生组件时,对所述待编译组件的代码中与所述当前编译平台对应的代码进行编译;
第二编译模块,用于在所述待编译组件为通用组件时,基于预设规则对所述待编译组件的代码进行处理,并对处理后的代码进行编译。
8.根据权利要求7所述的装置,其特征在于,所述第一编译模块在对所述待编译组件的代码中与所述当前编译平台对应的代码进行编译时,具体用于:
基于预设置的编译平台类型与所述待编译组件的代码的对应关系,确定所述待编译组件的代码中与所述当前编译平台对应的代码;
对所述待编译组件的代码中与所述当前编译平台对应的代码进行编译。
9.一种电子设备,其特征在于,包括处理器和存储器;
所述存储器,用于存储操作指令;
所述处理器,用于通过调用所述操作指令,执行权利要求1-6中任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-6中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010282672.1A CN111427583A (zh) | 2020-04-12 | 2020-04-12 | 组件的编译方法、装置和电子设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010282672.1A CN111427583A (zh) | 2020-04-12 | 2020-04-12 | 组件的编译方法、装置和电子设备及计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111427583A true CN111427583A (zh) | 2020-07-17 |
Family
ID=71551849
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010282672.1A Pending CN111427583A (zh) | 2020-04-12 | 2020-04-12 | 组件的编译方法、装置和电子设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111427583A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112711400A (zh) * | 2020-12-31 | 2021-04-27 | 北京字跳网络技术有限公司 | 视图的处理方法、设备、存储介质及计算机程序产品 |
CN113031932A (zh) * | 2021-03-11 | 2021-06-25 | 腾讯科技(深圳)有限公司 | 项目开发方法、装置、电子设备及存储介质 |
CN113126997A (zh) * | 2021-04-21 | 2021-07-16 | 多点(深圳)数字科技有限公司 | 一套前端代码生成多个运行容器的编译方法 |
CN113407255A (zh) * | 2021-06-16 | 2021-09-17 | 上海微盟企业发展有限公司 | 组件调用方法、装置及计算机可读存储介质 |
CN113672224A (zh) * | 2021-08-20 | 2021-11-19 | 上海哔哩哔哩科技有限公司 | 小程序页面代码生成方法、装置及计算机设备 |
CN115857900A (zh) * | 2023-01-13 | 2023-03-28 | 安世亚太科技股份有限公司 | 代码自动生成方法、装置、电子设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105893014A (zh) * | 2015-12-08 | 2016-08-24 | 乐视云计算有限公司 | 用于前端的项目开发方法及*** |
US20180164966A1 (en) * | 2016-12-14 | 2018-06-14 | International Business Machines Corporation | Providing user interface language options |
CN109857403A (zh) * | 2018-12-05 | 2019-06-07 | 腾讯科技(深圳)有限公司 | 一种页面更新、页面处理方法及装置 |
CN110489088A (zh) * | 2019-08-13 | 2019-11-22 | 绿漫科技有限公司 | 一种跨平台的小程序开发方法 |
CN110780853A (zh) * | 2019-09-28 | 2020-02-11 | 同程网络科技股份有限公司 | 前端框架及开发方法、存储介质、电子设备 |
-
2020
- 2020-04-12 CN CN202010282672.1A patent/CN111427583A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105893014A (zh) * | 2015-12-08 | 2016-08-24 | 乐视云计算有限公司 | 用于前端的项目开发方法及*** |
US20180164966A1 (en) * | 2016-12-14 | 2018-06-14 | International Business Machines Corporation | Providing user interface language options |
CN109857403A (zh) * | 2018-12-05 | 2019-06-07 | 腾讯科技(深圳)有限公司 | 一种页面更新、页面处理方法及装置 |
CN110489088A (zh) * | 2019-08-13 | 2019-11-22 | 绿漫科技有限公司 | 一种跨平台的小程序开发方法 |
CN110780853A (zh) * | 2019-09-28 | 2020-02-11 | 同程网络科技股份有限公司 | 前端框架及开发方法、存储介质、电子设备 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112711400A (zh) * | 2020-12-31 | 2021-04-27 | 北京字跳网络技术有限公司 | 视图的处理方法、设备、存储介质及计算机程序产品 |
CN113031932A (zh) * | 2021-03-11 | 2021-06-25 | 腾讯科技(深圳)有限公司 | 项目开发方法、装置、电子设备及存储介质 |
CN113031932B (zh) * | 2021-03-11 | 2023-10-20 | 腾讯科技(深圳)有限公司 | 项目开发方法、装置、电子设备及存储介质 |
CN113126997A (zh) * | 2021-04-21 | 2021-07-16 | 多点(深圳)数字科技有限公司 | 一套前端代码生成多个运行容器的编译方法 |
CN113407255A (zh) * | 2021-06-16 | 2021-09-17 | 上海微盟企业发展有限公司 | 组件调用方法、装置及计算机可读存储介质 |
CN113672224A (zh) * | 2021-08-20 | 2021-11-19 | 上海哔哩哔哩科技有限公司 | 小程序页面代码生成方法、装置及计算机设备 |
CN115857900A (zh) * | 2023-01-13 | 2023-03-28 | 安世亚太科技股份有限公司 | 代码自动生成方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111427583A (zh) | 组件的编译方法、装置和电子设备及计算机可读存储介质 | |
CN110149800B (zh) | 一种用于处理与源程序的源代码相关联的抽象语法树的装置 | |
CN110780853A (zh) | 前端框架及开发方法、存储介质、电子设备 | |
CN106293675B (zh) | ***静态资源加载方法及装置 | |
CN110502520B (zh) | 一种数据入库的方法、***、设备及计算机可读存储介质 | |
CN110262783B (zh) | 一种接口生成方法、装置及终端设备 | |
CN109710260B (zh) | 一种基于多平台的小程序代码转换方法 | |
CN110109671B (zh) | 一种webpack标签尺寸样式转换方法及装置 | |
EP3974964A1 (en) | Automated generation of software patches | |
CN113031932A (zh) | 项目开发方法、装置、电子设备及存储介质 | |
CN110058849A (zh) | 流程图的生成方法、装置、计算机设备以及存储介质 | |
CN111596970B (zh) | 动态库延迟加载方法、装置、设备和存储介质 | |
CN111158665B (zh) | 代码生成方法及装置、电子设备和存储介质 | |
CN112905271A (zh) | 一种应用程序接口api的调用方法、装置及电子设备 | |
CN110489124B (zh) | 源代码执行方法、装置、存储介质及计算机设备 | |
CN115729560B (zh) | 程序代码处理方法及装置 | |
US9304743B1 (en) | Converting from incorrect program code to correct program code | |
CN116755669A (zh) | 一种基于dsl语言操作模型的低代码开发方法和工具 | |
CN113821195B (zh) | 目标语言的可执行程序的生成方法、装置及设备 | |
CN110737431B (zh) | 软件开发方法、开发平台、终端设备及存储介质 | |
CN111399842B (zh) | 一种代码编译方法及装置 | |
CN112328241B (zh) | 一种应用程序开发中创建Android库模块依赖关系的方法及装置 | |
CN114741294A (zh) | 一种页面的调试方法、装置、设备及存储介质 | |
CN114611500A (zh) | 表达式处理方法、装置、电子设备及计算机可读存储介质 | |
CN113961238A (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200717 |