一种基于JavaScript的跨平台应用打包方法技术

技术编号:26030378 阅读:15 留言:0更新日期:2020-10-23 21:07
本发明专利技术公开了一种基于JavaScript的跨平台应用打包方法,传入已完成功能的electron代码,并进行分析,解构出需要根据不同平台生成定制化代码的模块,并对模块进行注入多平台定制化代码,然后调用electron代码混淆,打包模块,最终生成出符合操作系统的桌面应用安装包。本发明专利技术实现了从一份代码中构建出满足多个操作系统的应用,减少了大量的冗余工作,提高了开发效率。

【技术实现步骤摘要】
一种基于JavaScript的跨平台应用打包方法
本专利技术属于计算机
,具体涉及一种基于JavaScript的跨平台应用打包方法。
技术介绍
electron是github的一款使用JavaScript来完成windows,mac,linux操作系统的跨平台桌面应用框架,但是开发人员有时候需要根据不同的平台为其做很多的定制化的开发来满足不同操作系统的统一功能,使得开发人员不能够完全的从一份代码中构建出满足多个操作系统的应用,做了许多的冗余工作,降低了开发效率。
技术实现思路
本专利技术的目的在于提供一种基于JavaScript的跨平台应用打包方法,旨在实现从一份代码中构建出满足多个操作系统的应用。本专利技术主要通过以下技术方案实现:一种基于JavaScript的跨平台应用打包方法,传入已完成功能的electron代码,并进行分析,解构出需要根据不同平台生成定制化代码的模块,并对模块进行注入多平台定制化代码,然后调用electron代码混淆,打包模块,最终生成出符合操作系统的桌面应用安装包。为了更好地实现本专利技术,进一步的,主要包括以下步骤:步骤S100:上传electron代码完成后,并创建一个初始版本v1用于后续比对回滚;步骤S200:运用代码逻辑分析器对electron代码进行分析:首先将代码映射为对应的语法树,方便精准的获取到代码的每一个节点;然后同步所有匹配规则,此时用户可以选择匹配规则进行代码分析;步骤S300:自动定制化代码流程完成后,通过手动差异编辑模块完成手动定制化代码流程。为了更好地实现本专利技术,进一步的,所述步骤S200包括以下步骤:步骤S201:首先执行模块匹配规则,对语法树中的模块引入相关的树节点进行遍历,根据模块匹配对引入的模块进行操作,使用跨平台兼容语法生成器为引入该模块的树节点添加属性,根据模块匹配规则中相关模块的操作系统支持情况,对需要忽略的模块就加上忽略的属性;步骤S202:执行关键字匹配规则,遍历语法树中除模块引入相关的树节点之外的所有树节点;根据关键字匹配规则对遍历的树节点进行匹配,然后利用跨平台兼容语法生成器对匹配的树节点进行子节点添加,添加子节点的逻辑依据关键字匹配规则中对应的参数,对涉及到不同操作系统的方法以及类进行替换,然后生成定制化的子节点,并将其挂载到匹配的树节点,最终根据编辑后的语法树生成对应的定制化的代码;步骤S203:当关键字匹配规则完成后,则会得到一棵分析以及编辑完成的语法树,这时再通过将这一棵语法还原为代码,并将该版本的代码设置为更改版本v2,并记录下来,至此自动定制化代码流程完成。为了更好地实现本专利技术,进一步的,所述步骤S300包括以下步骤:步骤S301:将原代码初始版本v1以及更改代码版本v2同视图打开,针对生成了定制化代码的模块,将每个模块在页面单独列出,允许开发人员进行校对以及更改;步骤S302:同时模块还支持编辑原代码初始版本v1,这样方便操作者可以手动review代码,查漏补缺。为了更好地实现本专利技术,进一步的,还包括以下步骤:步骤S400:代码定制化流程完成后,然后调用electron项目中的程序代码打包逻辑对代码进行混淆以及打包,生成混淆后的JavaScript代码;步骤S500:然后进入可执行程序打包配置页面,生成的安装包下载到本地机器或者远程机器;步骤S600:最后生成不同操作系统的安装包,并自动分发到操作人员配置的机器中。为了更好地实现本专利技术,进一步的,所述步骤S400中程序代码打包逻辑为JavaScript项目中的通用打包逻辑,是每个JavaScript项目中自带的逻辑。1.代码逻辑分析器:主要是由Javascript的抽象语法树(AST)和模块匹配规则,以及关键字匹配规则组成。(AST的主要功能为将代码使用树状结构来表示),(模块匹配规则与关键字匹配规则主要是用来发现一条语句中是否包含相应的字符,例如当匹配规则为“今天”,则当遇到语句内容为“今天天气真好”和“明天天气很好”的两句话时,将会匹配到第一句话“今天天气真好”)分析器的主要能力就是如第三章的第3过程所诉,首先AST将代码转换为一颗语法树,并对这一棵语法树进行遍历(浏览每个节点),然后通过模块匹配规则和关键字匹配规则来判断是否使用相应的逻辑来对代码进行处理。最终当遍历完成后,输出为处理之后的代码。2.模块匹配规则与关键字匹配规则:模块匹配规则的结构为一个key/value结构的对象,key为模块名,value为支持的平台数组。关键字匹配规则的结构为一个key/value结构的对象,key为模块名,value为支持的平台以及对应的值。3.兼容语法生成器:为打包平台代码逻辑分析器的子模块,主要功能为根据匹配规则来操作语法树的树节点增加,删除以及编辑树节点,例如匹配到FlashPlayer将会生成条件判断逻辑,该逻辑为基于原有代码的语法树以及关键字匹配规则来为原有的语法树增加节点(原有代码的节点为1,增加之后为3),(增加条件判断逻辑,在不同的平台下的FlashPlayer的插件名称)。4.Web打包平台的构成A)打包平台代码逻辑分析器:主要模块用于分析并生成兼容性代码B)手动差异编辑模块:该模块的主要功能为显示打包平台代码逻辑分析器对代码进行的改动以及与源文件的差异,用于让用户可视化操作改动并对改动进行校准或者忽略C)可视化打包配置:该模块的主要功能为可视化执行程序代码打包以及最终的安装包打包配置(例如生成哪几个平台的安装包,windows还是macos,以及对应平台的安装包类型,例如windows平台是msi安装包还是exe安装包,应用是32位还是64位)D)应用分发地址:该模块的主要内容为配置打包后的应用需要分发到什么地方,(即,应用需要复制到ftp服务器还是下载到本地)。本专利技术的有益效果:本专利技术基于JavaScript实现了一个web平台,该平台的功能是通过传入已完成功能的electron代码,然后对传入的代码进行分析,解构出需要根据不同平台生成定制化代码的模块,然后对该模块进行注入多平台定制化代码,然后调用electron代码混淆,打包模块,最终生成出符合windows,mac,linux操作系统的桌面应用安装包。本专利技术实现了从一份代码中构建出满足多个操作系统的应用,减少冗余工作,提高了开发效率。具体实施方式实施例1:一种基于JavaScript的跨平台应用打包方法,主要包括以下步骤:1.首先是选择一个linux/windows/mac机器,运行自动化跨平台应用打包web平台(以下简称打包平台)。2.然后将已完成功能的electron项目上传到打包平台,当项目上传完成后,首先会为该项目的代码创建一个初始版本v1用于后续比对回滚,操作人员通过操作打包平台开始应用打包(该代码应该包含需要生成本文档来自技高网...

【技术保护点】
1.一种基于JavaScript的跨平台应用打包方法,其特征在于,传入已完成功能的electron代码,并进行分析,解构出需要根据不同平台生成定制化代码的模块,并对模块进行注入多平台定制化代码,然后调用electron代码混淆,打包模块,最终生成出符合操作系统的桌面应用安装包。/n

【技术特征摘要】
1.一种基于JavaScript的跨平台应用打包方法,其特征在于,传入已完成功能的electron代码,并进行分析,解构出需要根据不同平台生成定制化代码的模块,并对模块进行注入多平台定制化代码,然后调用electron代码混淆,打包模块,最终生成出符合操作系统的桌面应用安装包。


2.根据权利要求1所述的一种基于JavaScript的跨平台应用打包方法,其特征在于,主要包括以下步骤:
步骤S100:上传electron代码完成后,并创建一个初始版本v1用于后续比对回滚;
步骤S200:运用代码逻辑分析器对electron代码进行分析:首先将代码映射为对应的语法树,方便精准的获取到代码的每一个节点;然后同步所有匹配规则,此时用户可以选择匹配规则进行代码分析;
步骤S300:自动定制化代码流程完成后,通过手动差异编辑模块完成手动定制化代码流程。


3.根据权利要求2所述的一种基于JavaScript的跨平台应用打包方法,其特征在于,所述步骤S200包括以下步骤:
步骤S201:首先执行模块匹配规则,对语法树中的模块引入相关的树节点进行遍历,根据模块匹配对引入的模块进行操作,使用跨平台兼容语法生成器为引入该模块的树节点添加属性,根据模块匹配规则中相关模块的操作系统支持情况,对需要忽略的模块就加上忽略的属性;
步骤S202:执行关键字匹配规则,遍历语法树中除模块引入相关的树节点之外的所有树节点;根据关键字匹配规则对遍历的树节点进行匹配,然后利用跨平台兼容语法生成器对匹配的树节点进行子节点添加,添加子节点的逻辑依据关键字匹配规则中对应的参数,对涉及到...

【专利技术属性】
技术研发人员:廖培淋范渊吴永越郑学新刘韬
申请(专利权)人:成都安恒信息技术有限公司
类型:发明
国别省市:四川;51

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1