开发环境配置方法、装置、电子设备及存储介质与流程

文档序号:23695863发布日期:2021-01-23 10:51阅读:96来源:国知局
开发环境配置方法、装置、电子设备及存储介质与流程

[0001]
本申请涉及但不限于计算机技术领域,尤其涉及一种开发环境配置方法、装置、电子设备及存储介质。


背景技术:

[0002]
多端开发框架如taro提供了一套遵循react语法规范的多端开发解决方案。使用taro,只书写一套代码,再通过taro的编译工具,将源代码分别编译出可以在不同端(微信小程序、h5、app端等)运行的代码。同时taro还提供了开箱即用的语法检测和自动补全等功能。
[0003]
目前,在基于taro的多端开发场景中,常常需要配置跨平台移动应用开发框架(react native,rn)端原生环境、原生工程相关包、taro相关的环境以及脚本语言工程等相关环境,每个环境需要独立配置。
[0004]
由于每个环境的配置都是独立的,所以配置过程相当繁琐,而且对配置顺序也有要求,如果配置顺序不正确,很可能会造成环境无法启动的情况。
[0005]
申请内容
[0006]
本申请实施例提供一种开发环境配置方法、装置、电子设备及存储介质,以解决相关技术中由于每个环境的配置都是独立的,所以配置过程相当繁琐,而且对配置顺序也有要求,如果配置顺序不正确,很可能会造成环境无法启动的问题,实现一键式安装,确保有序配置,进而确保开发环境正常启动。
[0007]
本申请实施例的技术方案是这样实现的:
[0008]
一种开发环境配置方法,所述方法包括:
[0009]
若脚本语言运行环境的版本参数符合预设版本参数范围,配置开发环境对应的软件环境,得到第一配置结果;
[0010]
若所述第一配置结果表征软件环境配置成功,配置脚本语言工程对应的程序包资源,得到第二配置结果;
[0011]
若所述第二配置结果表征所述脚本语言工程对应的程序包资源配置成功,配置原生工程对应的程序包资源,得到第三配置结果;
[0012]
若所述第三配置结果表征所述原生工程对应的程序包资源配置成功,确定开发环境配置完成。
[0013]
在上述方案中,所述若脚本语言运行环境的版本参数符合预设版本参数范围,配置开发环境对应的软件环境,并得到配置结果,包括:
[0014]
若所述版本参数符合所述预设版本参数范围,检测控制系统运行环境;
[0015]
若所述控制系统运行环境符合预设控制系统运行环境,检测应用开发框架运行环境;
[0016]
若所述应用开发框架运行环境符合预设应用开发框架运行环境,检测多端开发框架的运行环境;
[0017]
若所述多端开发框架的运行环境符合预设多端开发框架的运行环境,得到表征软件环境配置成功的所述第一配置结果。
[0018]
在上述方案中,所述若所述第一配置结果表征软件环境配置成功,配置脚本语言工程对应的程序包资源,得到第二配置结果,包括:
[0019]
若所述第一配置结果表征软件环境配置成功,检测默认缓存目录下是否有同名的脚本语言文件夹;
[0020]
若所述默认缓存目录下没有同名的脚本语言文件夹,从控制系统下载第一脚本语言工程;
[0021]
基于脚本语言工程的根目录,安装第一程序包包;
[0022]
若第一程序包包安装成功,得到表征脚本语言工程对应的程序包资源配置成功的所述第二配置结果。
[0023]
在上述方案中,所述若所述多端开发框架的运行环境符合预设多端开发框架的运行环境,得到表征软件环境配置成功的所述第一配置结果,包括:
[0024]
若所述多端开发框架的运行环境符合所述预设多端开发框架的运行环境,且电子设备的操作系统是预设系统,安装容器组;
[0025]
若所述容器组安装成功,创建私有仓库;
[0026]
若所述私有仓库创建成功,得到所述第一配置结果。
[0027]
在上述方案中,所述若所述第二配置结果表征脚本语言工程对应的程序包资源配置成功,配置原生工程对应的程序包资源,得到第三配置结果,包括:
[0028]
所述第二配置结果表征脚本语言工程对应的程序包资源配置成功,检测默认缓存目录下是否有同名的原生文件夹;
[0029]
若所述默认缓存目录下没有同名的原生文件夹,从控制系统下载第二脚本语言工程;
[0030]
基于脚本语言工程的根目录,安装第二程序包包;
[0031]
若第二程序包包安装成功,得到表征原生工程对应的程序包资源配置成功的所述第三配置结果。
[0032]
在上述方案中,所述若所述第三配置结果表征原生工程对应的程序包资源配置成功,确定开发环境配置完成,包括:
[0033]
若所述第三配置结果表征原生工程对应的程序包资源配置成功,且所述操作系统是预设系统,基于预设系统对应的子目录,安装原生包;若所述原生包安装成功,确定开发环境配置完成。
[0034]
在上述方案中,若所述第三配置结果表征原生工程对应的程序包资源配置成功,且所述操作系统不是预设系统,确定开发环境配置完成。
[0035]
一种开发环境配置装置,所述装置包括:
[0036]
第一配置模块,用于若脚本语言运行环境的版本参数符合预设版本参数范围,配置开发环境对应的软件环境,得到第一配置结果;
[0037]
第二配置模块,用于若所述第一配置结果表征软件环境配置成功,配置脚本语言工程对应的程序包资源,得到第二配置结果;
[0038]
第三配置模块,用于若所述第二配置结果表征脚本语言工程对应的程序包资源配
置成功,配置原生工程对应的程序包资源,得到第三配置结果;
[0039]
确定模块,用于若所述第三配置结果表征原生工程对应的程序包资源配置成功,确定开发环境配置完成。
[0040]
一种电子设备,所述电子设备包括:存储器,用于存储可执行指令;
[0041]
处理器,用于执行所述存储器中存储的可执行指令,实现上述的开发环境配置方法。
[0042]
一种存储介质,存储有可执行指令,当所述可执行指令被执行时,用于引起处理器执行上述的开发环境配置方法。
[0043]
应用本申请实施例实现以下有益效果:通过前置依赖检测、本地运行环境检测及自动安装处理、异步操作分段处理、工程自动下载及安装等流程步骤,对不同阶段涉及的如何检测、何时检测、何时自动化安装、前置环境检测和工程处理之间的逻辑流程做出了明确的规定,如此,不仅实现了一键式安装,而且确保了开发环境配置按照正确的顺序依次执行。
[0044]
因为若脚本语言运行环境的版本参数符合预设版本参数范围,配置开发环境对应的软件环境,得到第一配置结果;若第一配置结果表征软件环境配置成功,配置脚本语言工程对应的程序包资源,得到第二配置结果;若第二配置结果表征脚本语言工程对应的程序包资源配置成功,配置原生工程对应的程序包资源,得到第三配置结果;若第三配置结果表征原生工程对应的程序包资源配置成功,确定开发环境配置完成;如此解决了相关技术中由于每个环境的配置都是独立的,所以配置过程相当繁琐,而且对配置顺序也有要求,如果配置顺序不正确,很可能会造成环境无法启动的问题,实现一键式安装,确保有序配置,进而确保开发环境正常启动。
附图说明
[0045]
图1本申请实施例提供的开发环境配置方法的流程示意图一;
[0046]
图2本申请实施例提供的开发环境配置方法的流程示意图二;
[0047]
图3本申请实施例提供的开发环境配置方法的流程示意图三;
[0048]
图4本申请实施例提供的开发环境配置方法的第一阶段的流程示意图;
[0049]
图5本申请实施例提供的开发环境配置方法的第二阶段的流程示意图;
[0050]
图6本申请实施例提供的开发环境配置方法的第三阶段的流程示意图;
[0051]
图7本申请实施例提供的一种开发环境配置装置的结构示意图;
[0052]
图8本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
[0053]
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,所描述的实施例不应视为对本申请的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
[0054]
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
[0055]
对本申请实施例进行进一步详细说明之前,对本申请实施例中涉及的名词和术语进行说明,本申请实施例中涉及的名词和术语适用于如下的解释。
[0056]
1)taro是一套多端开发框架,支持微信小程序、h5、react native的多端开发框架。
[0057]
2)shell是一个用c语言编写的程序,它是用户使用linux的桥梁。
[0058]
3)git是一个开源的分布式版本控制系统。
[0059]
4)promise是javascript标准内置对象,用于表示一个异步操作的最终完成(或失败)及其结果值,内部提供resolve和reject方法供处理不同情况。
[0060]
5)async/await,async functions和await关键字是ecmascript 2017javascript版的一部分,使得异步代码更易于编写和后续阅读。它们使得异步代码看起来更像是旧式同步代码。
[0061]
6)react native是一种开源的跨平台移动应用开发框架,目前支持安卓平台和ios平台。react native使用javascript语言。javascript即js是一种具有函数优先的轻量级,解释型或即时编译型的高级编程语言。虽然它是作为开发web页面的脚本语言而出名的,但是它也被用到了很多非浏览器环境中,javascript基于原型编程、多范式的动态脚本语言,并且支持面向对象、命令式和声明式(如函数式编程)风格。
[0062]
相关技术中,在基于taro的多端开发场景中,常常需要配置rn端原生环境、原生工程相关包、taro相关的环境、js工程等相关环境,每个环境需要独立配置。每个环境的配置都是独立的,配置过程相当繁琐,对配置顺序也有要求,如果配置顺序不正确,很可能会造成环境无法启动的情况。
[0063]
本申请通过开发自动化命令工具,一键解决taro开发中的环境配置问题,初始安装时通过执行一次命令即可进行初始环境检测,初始全局包自动下载、js工程和原生工程自动下载安装相关本地包。
[0064]
参见图1所示,本申请所提供的开发环境配置方法包括:
[0065]
步骤101、若脚本语言运行环境的版本参数符合预设版本参数范围,配置开发环境对应的软件环境,得到第一配置结果。
[0066]
这里,脚本语言运行环境包括node.js环境。node.js是一个让脚本语言运行在服务端的开发平台。电子设备通过安装node环境,为本申请的实施提供了一个基础环境,进而支撑开发环境配置以node包管理器(node package manager,npm)全局包的方式呈现。
[0067]
电子设备在安装有脚本语言运行环境如node环境的情况下,检测脚本语言运行环境对应的版本参数,例如检测node环境的版本参数。进一步地,电子设备核验脚本语言运行环境对应的版本参数符合预设版本参数范围,则确保taro在各端能够稳定运行,继而配置开发环境对应的软件环境。
[0068]
其中,第一配置结果包括表征软件环境配置成功的结果;或者第一配置结果包括表征软件环境配置失败的结果。
[0069]
步骤102、若第一配置结果表征软件环境配置成功,配置脚本语言工程对应的程序包资源,得到第二配置结果。
[0070]
这里,电子设备确定第一配置结果表征软件环境配置成功的情况下,配置脚本语言工程对应的npm资源,即实现脚本语言工程自动化流程检测,得到第二配置结果。
[0071]
其中,第二配置结果包括表征脚本语言工程对应的npm资源配置成功的结果;或者第一配置结果包括表征脚本语言工程对应的npm资源配置失败的结果。
[0072]
步骤103、若第二配置结果表征脚本语言工程对应的程序包资源配置成功,配置原生工程对应的程序包资源,得到第三配置结果。
[0073]
这里,电子设备确定第二配置结果表征脚本语言工程对应的npm资源配置成功的情况下,配置原生工程对应的npm资源,即实现原生工程自动化流程检测,得到第三配置结果。
[0074]
其中,第三配置结果包括表征原生工程对应的npm资源配置成功的结果;或者第三配置结果包括表征原生工程对应的npm资源配置失败的结果。
[0075]
步骤104、若第三配置结果表征原生工程对应的程序包资源配置成功,确定开发环境配置完成。
[0076]
本申请提供的开发环境配置方法,通过若脚本语言运行环境的版本参数符合预设版本参数范围,配置开发环境对应的软件环境,得到第一配置结果;若第一配置结果表征软件环境配置成功,配置脚本语言工程对应的程序包资源,得到第二配置结果;若第二配置结果表征脚本语言工程对应的程序包资源配置成功,配置原生工程对应的程序包资源,得到第三配置结果;若第三配置结果表征原生工程对应的程序包资源配置成功,确定开发环境配置完成;如此解决了相关技术中由于每个环境的配置都是独立的,所以配置过程相当繁琐,而且对配置顺序也有要求,如果配置顺序不正确,很可能会造成环境无法启动的问题,实现一键式安装,确保有序配置,进而确保开发环境正常启动。
[0077]
本申请实施例提供一种开发环境配置方法,该方法应用于电子设备,参见图2所示,该方法包括:
[0078]
步骤201、若脚本语言运行环境的版本参数符合预设版本参数范围,检测控制系统运行环境。
[0079]
这里,电子设备确定脚本语言运行环境的版本参数如node版本参数符合预设版本参数范围的情况下,检测控制系统运行环境如git运行环境,以确定git是否安装。
[0080]
步骤202、若控制系统运行环境符合预设控制系统运行环境,检测应用开发框架运行环境。
[0081]
这里,电子设备确定git运行环境符合预设git运行环境,则确定git-version正常运行,本地已安装git环境,进而检测应用开发框架运行环境。
[0082]
步骤203、若应用开发框架运行环境符合预设应用开发框架运行环境,检测多端开发框架的运行环境。
[0083]
这里,电子设备确定react native运行环境符合预设react native运行环境,说明已安装react native运行环境,则进一步检测多端开发框架如taro的运行环境。
[0084]
步骤204、若多端开发框架的运行环境符合预设多端开发框架的运行环境,得到表征软件环境配置成功的第一配置结果。
[0085]
这里,电子设备确定多端开发框架的运行环境符合预设多端开发框架如taro的运行环境,则确保安装有taro运行环境,得到表征软件环境配置成功的第一配置结果,至此,完成自动匹配安装所需软件环境。
[0086]
本申请其他实施例中,步骤204若多端开发框架的运行环境符合预设多端开发框
架的运行环境,得到表征软件环境配置成功的第一配置结果,可以通过图3所示的步骤实现:
[0087]
步骤2041、若多端开发框架的运行环境符合预设多端开发框架的运行环境,且电子设备的操作系统是预设系统,安装容器组。
[0088]
这里,电子设备确定多端开发框架的运行环境符合预设多端开发框架的运行环境,且电子设备的操作系统是预设系统,则安装容器组pod。
[0089]
步骤2042、若容器组安装成功,创建私有仓库。
[0090]
步骤2043、若私有仓库创建成功,得到第一配置结果。
[0091]
步骤205、若第一配置结果表征软件环境配置成功,检测默认缓存目录下是否有同名的脚本语言文件夹。
[0092]
这里,电子设备可以通过node核心api fs.existssync检测默认缓存目录下是否有同名的脚本语言文件夹,若未检测到相关目录则继续执行后续步骤。
[0093]
步骤206、若默认缓存目录下没有同名的脚本语言文件夹,从控制系统下载第一脚本语言工程。
[0094]
这里,电子设备确定默认缓存目录下没有同名的脚本语言文件夹,执行第一git clone指令,从git下载第一脚本语言工程到本地,为了原样显示git clone的执行过程,在git clone的命令中创建progress参数,下载成功继续执行后续步骤,如果下载失败则给出提示停止命令,并终止开发环境配置流程。
[0095]
步骤207、基于脚本语言工程的根目录,安装第一程序包。
[0096]
这里,电子设备从git下载第一脚本语言工程之后,进入到脚本语言工程的根目录下,执行npm i以安装第一npm包,安装第一npm包。
[0097]
步骤208、若第一程序包安装成功,得到表征脚本语言工程对应的程序包资源配置成功的第二配置结果。
[0098]
这里,电子设备进入到脚本语言工程根目录下,执行npm i安装第一npm包,因为通过shelljs执行命令和在终端中执行对于目录的处理不同,本申请实施例中在跳转的时候需要通过改变工作目录实现,而不是通过cd命令来改变工作目录,下载成功则继续进行后续原生工程的处理。
[0099]
步骤209、若第二配置结果表征脚本语言工程对应的程序包资源配置成功,检测默认缓存目录下是否有同名的原生文件夹。
[0100]
这里,电子设备可以通过node核心api fs.existssync检测默认缓存目录下是否有同名的native文件夹,若未检测到相关目录则继续执行后续步骤。
[0101]
步骤210、若默认缓存目录下没有同名的原生文件夹,从控制系统下载第二脚本语言工程。
[0102]
这里,电子设备确定默认缓存目录下没有同名的native文件夹,执行第二git clone指令,通过shell.exec执行第二git clone指令,从git下载第二脚本语言工程到本地。
[0103]
步骤211、基于脚本语言工程的根目录,安装第二程序包。
[0104]
这里,电子设备从git下载第二脚本语言工程之后,进入到脚本语言工程的根目录下,执行npm i以安装第二npm包,安装第二npm包成功则继续进行后续的处理。
[0105]
步骤212、若第二程序包安装成功,得到表征原生工程对应的程序包资源配置成功的第三配置结果。
[0106]
步骤213、若第三配置结果表征原生工程对应的程序包资源配置成功,确定开发环境配置完成。
[0107]
本申请其他实施例中,步骤213若第三配置结果表征原生工程对应的程序包资源配置成功,确定开发环境配置完成,包括如下步骤:
[0108]
步骤a、若第三配置结果表征原生工程对应的程序包资源配置成功,且操作系统是预设系统,基于预设系统对应的子目录,安装原生包;若原生包安装成功,确定开发环境配置完成。
[0109]
这里,电子设备确定是mac环境,则基于mac系统对应的子目录如ios子目录,安装ios原生包;成功安装ios原生包则确定开发环境配置完成。
[0110]
步骤b、若第三配置结果表征原生工程对应的程序包资源配置成功,且操作系统不是预设系统,确定开发环境配置完成。
[0111]
这里,电子设备确定不是mac环境,则在第三配置结果表征原生工程对应的npm资源配置成功的情况下,确定开发环境配置完成。
[0112]
需要说明的是,本实施例中与其它实施例中相同步骤和相同内容的说明,可以参照其它实施例中的描述,此处不再赘述。
[0113]
本申请实施例提供一种开发环境配置方法,该方法应用于电子设备,这里结合图4-图6,分三个阶段对本申请提供的开发环境配置方法做出进一步地说明,其中,参见图4所示,开发环境配置方法的第一阶段又称软件检测安装阶段,包括如下步骤:
[0114]
步骤401、检测脚本语言运行环境对应的版本参数是否符合预设版本参数范围。
[0115]
电子设备安装有javascript运行环境。javascript运行环境包括node.js环境。node.js是一个让javascript运行在服务端的开发平台。电子设备通过安装node环境,为本申请的实施提供了一个基础环境,进而支撑开发环境配置以npm全局包的方式呈现。
[0116]
这里,电子设备在安装有javascript运行环境如node环境的情况下,检测javascript运行环境对应的版本参数,例如检测node环境的版本参数。进一步地,电子设备核验javascript运行环境对应的版本参数符合预设版本参数范围,则确保taro在各端能够稳定运行,继而执行后续检测流程。
[0117]
一些实施例中,node限制版本配置在package.json中,电子设备基于node process.version获取本地node环境的版本参数,进而电子设备通过npm第三方包语义化版本(semantic versioning,semver)规范的一个实现对本地node环境的版本参数和预设版本参数这二者进行比较,如果不满足限制版本则给出提示,并终止开发环境配置流程。
[0118]
示例性的,电子设备通过npm第三方包semver对二者的版本进行比较,确定node版本大于或者等于8,则确定node版本参数符合预设版本参数范围。
[0119]
步骤402、检测是否安装git运行环境。
[0120]
这里,电子设备确定node版本参数符合预设版本参数范围的情况下,检测git是否安装。git是一款开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。git与常用的版本控制工具cvs、subversion等不同,它采用了分布式版本库的方式,不必服务器端软件支持,使源代码的发布和交流极其方便。每一个git克隆(git clone)都是一个
完整的文件库,含有全部历史记录和修订追踪能力。
[0121]
在实际应用中,电子设备运行git-version,如果git-version正常运行,则确定本地已安装git环境,进而继续执行后续检测,如果运行异常则给出提示,并终止开发环境配置流程。
[0122]
步骤403、检测是否安装react native运行环境。
[0123]
这里,电子设备确定本地已安装git环境的情况下,则进一步检测react native是否安装。在实际应用中,电子设备通过shell.exec运行react-native-v命令,如果正常运行说明已安装react native运行环境,则继续执行后续检测。
[0124]
如果异常表示未安装react native,那么电子设备执行步骤404、安装react native cli,并运行npm install-greact-native-cli,以确保安装有react native运行环境,由此,为原生工程提供依赖环境即react native全局npm包提供有力保障。
[0125]
步骤405、检测是否安装taro运行环境。
[0126]
这里,taro运行环境包括npm i@tarojs/cli@2.0.3-g,电子设备确定本地已安装react native运行环境的情况下,则进一步检测taro运行环境是否安装。
[0127]
步骤406、电子设备确定未安装taro运行环境的情况下,自动安装taro包。从而确保安装有taro运行环境,实现为本申请的开发环境配置方法自动匹配安装所需软件环境。
[0128]
步骤407、电子设备确定是否mac环境。
[0129]
步骤408、电子设备确定是mac环境,确定是否安装pod。
[0130]
步骤409、电子设备确定安装pod,进一步确定是否安装master库。
[0131]
步骤410、电子设备确定未安装pod,则安装pod。
[0132]
步骤411、电子设备确定安装master库,则确定软件检测安装阶段完成。
[0133]
步骤412、电子设备确定未安装master库,则添加私有master库,安装成功后确定软件检测安装阶段完成。
[0134]
本申请实施例中,步骤401检测javascript运行环境对应的版本参数是否符合预设版本参数范围之后,若版本参数不符合预设版本参数范围,则电子设备执行步骤413、给出提示;进一步地,执行步骤414、结束执行开发环境配置方法。
[0135]
本申请其他实施例中,若taro运行环境安装成功,且电子设备的操作系统是mac系统,则电子设备安装容器组pod,需要说明的是,pod环境只有在mac环境下才需要安装,windows下并不需要安装,通过运行node os.platform检测本地运行性环境,如果是mac环境,则通过shell.exec执行sudo gem install cocoapods-v1.8.4安装pod,安装成功则添加私有的仓库,如果安装失败则给出提示并终止开发环境配置流程。
[0136]
本申请实施例中,参见图5所示,开发环境配置方法的第二阶段又称javascript工程自动化流程检测阶段,包括如下步骤:
[0137]
步骤501、检测默认缓存目录下是否有同名javascript文件夹。
[0138]
这里,电子设备检测默认缓存目录即当前目录下是否有同名的javascript文件夹,如果是同名的文件则忽略。
[0139]
电子设备可以通过node核心api fs.existssync检测默认缓存目录下是否有同名的javascript文件夹,若未检测到相关目录则继续执行后续步骤。
[0140]
步骤502、如果检测到有同名javascript文件夹,提示是否删除。
[0141]
这里,电子设备给出单项选择,提示是否删除。例如,此时电子设备显示的命令行中的单项选择提示通过npm第三方包inquirer实现,进一步地,电子设备接收到确认指令则删除已有目录,否则给出提示且终止开发环境配置流程。
[0142]
步骤503、确定默认缓存目录下没有同名的javascript文件夹,从git下载第一javascript工程。
[0143]
步骤504、确定是否下载成功。
[0144]
这里,电子设备确定默认缓存目录下没有同名的javascript文件夹,执行第一git clone指令,从git下载第一javascript工程到本地。为了原样显示git clone的执行过程,在git clone的命令中创建progress参数,下载成功继续执行后续步骤,如果下载失败则给出提示停止命令,并终止开发环境配置流程。
[0145]
步骤505、基于javascript工程的根目录,安装第一npm包。
[0146]
步骤506、确定是否安装成功。
[0147]
步骤507、确定安装成功,则确定javascript工程自动化流程检测阶段完成。
[0148]
这里,电子设备从git下载javascript工程之后,进入到javascript工程的根目录下,执行npm i以安装第一npm包,安装第一npm包成功则继续进行后续的处理,下载失败则给出提示,并终止开发环境配置流程。
[0149]
一些实施例中,电子设备进入到javascript工程根目录下,执行npm i安装第一npm包,因为通过shelljs执行命令和在终端中执行对于目录的处理不同,本申请实施例中在跳转的时候需要通过改变工作目录实现,而不是通过cd命令来改变工作目录,下载成功则继续进行后续原生工程的处理,下载失败则给出提示,并终止开发环境配置流程。
[0150]
本申请实施例中,参见图6所示,开发环境配置方法的第三阶段又称原生工程自动化处理流程阶段,包括如下步骤:
[0151]
步骤601、检测默认缓存目录下是否有同名原生native文件夹。
[0152]
这里,电子设备检测默认缓存目录下是否有同名的native文件夹,如果是同名的文件则忽略。
[0153]
电子设备可以通过node核心api fs.existssync检测默认缓存目录下是否有同名的native文件夹,若未检测到相关目录则继续执行后续步骤。
[0154]
步骤602、如果检测到同名原生native文件夹,提示是否删除。
[0155]
这里,电子设备给出单项选择,提示是否删除。此时,电子设备显示的命令行中的单项选择提示通过npm第三方包inquirer实现,进一步地,电子设备接收到确认指令则删除已有目录,否则终止开发环境配置流程。
[0156]
步骤603、确定默认缓存目录下没有同名native文件夹,从git下载第二javascript工程。
[0157]
步骤604、确定是否下载成功。
[0158]
这里,电子设备确定默认缓存目录下没有同名的native文件夹,执行第二git clone指令,通过shell.exec执行第二git clone指令,从git下载第二javascript工程到本地。为了原样显示git clone的执行过程,在git clone的命令中创建progress参数,下载成功继续执行后续步骤,如果下载失败则给出提示停止命令,并终止开发环境配置流程。
[0159]
这里,shell命令调用npm包shelljs进行,shell命令进度显示ora,命令行颜色处
理chalk。相关技术中,流程通用处理方法shell命令通过转换为promise进行链式调用,本申请中将常用软件的检测安装与工程检测方法分开进行处理,因为两者都是异步调用,但又有先后顺序要求,我们通过async/await实现顺序处理。由上述可知,本申请通过shell命令自动执行相关的git、npm、pod操作,同时对所有的命令做响应的错误处理和兼容处理。
[0160]
步骤605、基于javascript工程的根目录,安装第二npm包。
[0161]
步骤606、确定是否安装成功。
[0162]
这里,电子设备从git下载第二javascript工程之后,进入到javascript工程的根目录下,执行npm i以安装第二npm包,安装第二npm包成功则继续进行后续的处理,下载失败则给出提示,并终止开发环境配置流程。
[0163]
步骤607、确定是否mac环境。
[0164]
若不是mac环境,则确定开发环境配置完成。
[0165]
步骤608、若是mac环境,则进入ios子目录。
[0166]
步骤609、安装ios原生包,如执行pod安装。
[0167]
步骤610、确定是否安装成功。
[0168]
步骤611、成功安装ios原生包则确定开发环境配置完成,结束配置流程。
[0169]
这里,ios原生包只在调试ios端的时候使用,因此如果电子设备确定本地是非mac环境则不需要执行步骤604,只需对本地环境进行检测,通过node api os.platform()获取当前系统环境。如果电子设备确定是mac环境,则通过变更工作目录跳转到ios子目录下执行pod install安装ios原生包,安装完成则确定开发环境配置完成,如果出现异常则给出提示并终止开发环境配置流程。
[0170]
需要说明的是,所有的shell命令通过使用node自带的核心包util中的promisify转换成promise,这样做事为了做异步的链式处理从而间接保证异步操作顺序执行,对于独立性的异步操作则通过async/await保证窒息性顺序
[0171]
由上述开发环境配置方法的三个阶段的流程可知,本申请提供的开发环境配置方法通过前置依赖检测、本地运行环境检测及自动安装处理、异步操作分段处理、工程自动下载及安装等流程步骤,对不同阶段涉及的如何检测、何时检测、何时自动化安装、前置环境检测和工程处理之间的逻辑流程做出了明确的规定,如此,不仅实现了一键式安装,而且确保了开发环境配置按照正确的顺序依次执行。
[0172]
本申请的实施例提供一种开发环境配置装置,该开发环境配置装置可以应用于图1、2对应的实施例提供的一种开发环境配置方法中,参照图7所示,该开发环境配置装置7包括:
[0173]
第一配置模块701,用于若脚本语言运行环境的版本参数符合预设版本参数范围,配置开发环境对应的软件环境,得到第一配置结果;
[0174]
第二配置模块702,用于若第一配置结果表征软件环境配置成功,配置脚本语言工程对应的程序包资源,得到第二配置结果;
[0175]
第三配置模块703,用于若第二配置结果表征脚本语言工程对应的程序包资源配置成功,配置原生工程对应的程序包资源,得到第三配置结果;
[0176]
确定模块704,用于若第三配置结果表征原生工程对应的程序包资源配置成功,确定开发环境配置完成。
[0177]
在本申请的其他实施例中,第一配置模块,还用于若版本参数符合预设版本参数范围,检测控制系统运行环境;若控制系统运行环境符合预设控制系统运行环境,检测应用开发框架运行环境;若应用开发框架运行环境符合预设应用开发框架运行环境,检测多端开发框架的运行环境;若多端开发框架的运行环境符合预设多端开发框架的运行环境,得到表征软件环境配置成功的第一配置结果。
[0178]
在本申请的其他实施例中,第二配置模块,还用于若第一配置结果表征软件环境配置成功,检测默认缓存目录下是否有同名的脚本语言文件夹;若默认缓存目录下没有同名的脚本语言文件夹,从控制系统下载第一脚本语言工程;基于脚本语言工程的根目录,安装第一程序包包;若第一程序包包安装成功,得到表征脚本语言工程对应的程序包资源配置成功的第二配置结果。
[0179]
在本申请的其他实施例中,第一配置模块,还用于若多端开发框架的运行环境符合预设多端开发框架的运行环境,且电子设备的操作系统是预设系统,安装容器组;若容器组安装成功,创建私有仓库;若私有仓库创建成功,得到第一配置结果。
[0180]
在本申请的其他实施例中,第三配置模块,还用于第二配置结果表征脚本语言工程对应的程序包资源配置成功,检测默认缓存目录下是否有同名的原生文件夹;
[0181]
若默认缓存目录下没有同名的原生文件夹,从控制系统下载第二脚本语言工程;
[0182]
基于脚本语言工程的根目录,安装第二程序包包;
[0183]
若第二程序包包安装成功,得到表征原生工程对应的程序包资源配置成功的第三配置结果。
[0184]
在本申请的其他实施例中,确定模块,还用于若第三配置结果表征原生工程对应的程序包资源配置成功,且操作系统是预设系统,基于预设系统对应的子目录,安装原生包;若原生包安装成功,确定开发环境配置完成。
[0185]
在本申请的其他实施例中,确定模块,还用于若第三配置结果表征原生工程对应的程序包资源配置成功,且操作系统不是预设系统,确定开发环境配置完成。
[0186]
需要说明的是,本实施例中与其它实施例中相同步骤和相同内容的说明,可以参照其它实施例中的描述,此处不再赘述。
[0187]
本申请的实施例提供一种电子设备,该电子设备可以应用于图1、2对应的实施例提供的一种开发环境配置方法中,参照图8示,该电子设备8包括:存储器801,用于存储可执行指令;处理器802,用于执行所述存储器中存储的可执行指令,实现如图1-2示出的方法。
[0188]
需要说明的是,本实施例中处理器所执行的步骤的具体实现过程,可以参照图1、2对应的实施例提供的开发环境配置方法中的实现过程,此处不再赘述。
[0189]
本申请实施例提供一种存储有可执行指令的存储介质,其中存储有可执行指令,当可执行指令被处理器执行时,将引起处理器执行本申请实施例提供的方法,例如,如图1-2示出的方法。
[0190]
在一些实施例中,存储介质可以是计算机可读存储介质,例如,铁电存储器(fram,ferromagnetic random access memory)、只读存储器(rom,read only memory)、可编程只读存储器(prom,programmable read only memory)、可擦除可编程只读存储器(eprom,erasable programmable read only memory)、带电可擦可编程只读存储器(eeprom,electrically erasable programmable read only memory)、闪存、磁表面存储器、光盘、
或光盘只读存储器(cd-rom,compact disk-read only memory)等存储器;也可以是包括上述存储器之一或任意组合的各种设备。
[0191]
在一些实施例中,可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。
[0192]
作为示例,可执行指令可以但不一定对应于文件系统中的文件,可以可被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(超文本标记语言,hyper text markup language)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。作为示例,可执行指令可被部署为在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行。
[0193]
应理解,说明书通篇中提到的“本申请实施例”或“前述实施例”意味着与实施例有关的特定特征、结构或特性包括在本申请的至少一个实施例中。因此,在整个说明书各处出现的“本申请实施例中”或“在前述实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中应。在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
[0194]
在未做特殊说明的情况下,电子设备执行本申请实施例中的任一步骤,可以是电子设备的处理器执行该步骤。本申请实施例并不限定电子设备执行下述步骤的先后顺序。本申请实施例中的任一步骤是电子设备可以独立执行的,即电子设备执行下述实施例中的任一步骤时,可以不依赖于其它步骤的执行。
[0195]
需要说明的是,上述处理器可以为特定用途集成电路(application specific integrated circuit,asic)、数字信号处理器(di控制系统al signal processor,dsp)、数字信号处理装置(di控制系统al signal processing device,dspd)、可编程逻辑装置(programmable logic device,pld)、现场可编程门阵列(field programmable gate array,fpga)、中央处理器(central processing unit,cpu)、控制器、微控制器、微处理器中的至少一种。可以理解地,实现上述处理器功能的电子器件还可以为其它,本申请实施例不作具体限定。
[0196]
需要说明的是,上述计算机存储介质/存储器可以是只读存储器(read only memory,rom)、可编程只读存储器(programmable read-only memory,prom)、可擦除可编程只读存储器(erasable programmable read-only memory,eprom)、电可擦除可编程只读存储器(electrically erasable programmable read-only memory,eeprom)、磁性随机存取存储器(ferromagnetic random access memory,fram)、快闪存储器(flash memory)、磁表面存储器、光盘、或只读光盘(compact disc read-only memory,cd-rom)等存储器;也可以是包括上述存储器之一或任意组合的各种终端,如移动电话、计算机、平板设备、个人数字助理等。
[0197]
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
[0198]
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元,即可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
[0199]
另外,在本申请各实施例中的各功能单元可以全部集成在一个处理模块中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
[0200]
本申请所提供的几个方法实施例中所揭露的方法,在不冲突的情况下可以任意组合,得到新的方法实施例。
[0201]
本申请所提供的几个产品实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的产品实施例。
[0202]
本申请所提供的几个方法或设备实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的方法实施例或设备实施例。
[0203]
以上,仅为本申请的实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本申请的保护范围之内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1