【技术实现步骤摘要】
编译方法与编译系统
本公开涉及计算机
,具体而言,涉及一种能够提供多种编译环境且降低资源消耗的编译方法与编译系统。
技术介绍
目前,前端(泛指web、app、electron等界面)的工程类型已经非常多样化,常见的包括html5、react、vue、angularjs等等,但每一种技术都需要编译成目标工程才能运行,这就导致了前端开发人员需要在终端中安装多种构建环境。目前开发人员只能采用本地构建的方式,针对每种不同开发环境分别进行环境部署,但这些环境部署在同一个终端时,经常会产生冲突,比如某工程依赖python版本2.x但另一个工程依赖python版本3.0,或者依赖的操作系环境与终端的不一致。虽然目前针对具体的技术栈有一些冲突处理方案(如node下的nvm、使用虚拟机等),但操作并不便利,且依赖本地终端。首先,由于本地终端性能不一,如果终端性能低或出现故障,开发效率会非常低下。其次,编译为高CPU消耗工作,编译工作一旦开始,整个终端的CPU资源会被全部占满,开发人员有时不得不进入“原地等待”状态。第三,对于依赖 ...
【技术保护点】
1.一种编译方法,其特征在于,包括:/n响应客户端的预设文件上传指令接收待编译文件与配置文件;/n响应所述客户端的长连接建立请求与所述客户端建立长连接;/n根据所述配置文件在多个编译环境镜像中选择一个编译环境镜像,根据所述编译环境镜像启动容器,并将所述容器的控制端口对接到所述长连接;/n响应所述客户端通过所述长连接发送的编译指令,在所述容器内部对所述待编译文件执行所述编译指令;/n响应所述客户端的预设编译结束指令断开所述长连接,回收所述容器。/n
【技术特征摘要】
1.一种编译方法,其特征在于,包括:
响应客户端的预设文件上传指令接收待编译文件与配置文件;
响应所述客户端的长连接建立请求与所述客户端建立长连接;
根据所述配置文件在多个编译环境镜像中选择一个编译环境镜像,根据所述编译环境镜像启动容器,并将所述容器的控制端口对接到所述长连接;
响应所述客户端通过所述长连接发送的编译指令,在所述容器内部对所述待编译文件执行所述编译指令;
响应所述客户端的预设编译结束指令断开所述长连接,回收所述容器。
2.如权利要求1所述的编译方法,其特征在于,所述根据所述配置文件在多个编译环境镜像中选择一个编译环境镜像包括:
根据所述配置文件确定所述待编译文件的项目标识符;
在所述项目标识符存在对应编译环境镜像时,直接选择所述对应环境镜像;
否则,选择所述配置文件记录的指定编译环境镜像;
在所述配置文件未记录指定编译环境镜像时,选择默认编译环境镜像。
3.如权利要求1所述的编译方法,其特征在于,所述响应客户端的预设文件上传指令接收待编译文件与配置文件包括根据所述配置文件确定所述待编译文件的保存目录,所述根据所述编译环境镜像启动容器包括将所述容器与宿主的共享目录指定为所述保存目录。
4.如权利要求1所述的编译方法,其特征在于,所述根据所述编译环境镜像启动容器包括:
根据所述配置文件确定并暴露容器访问端口。
5.如权利要求1所述的编译方法,其特征在于,所述在所述容器内部对所述待编译文件的执行所述编译指令包括:
通过所述长连接对所述客户端反馈所述编译指令的执行结果。
6.一种编译系统,其特征在于,包括:
服务器,设置为执行以下指令:
响应客户端的预设文件上传指令接收待编译文件与配置文件;
响应所述客户端的长连接建立请求与所述客户端建立长连接;
根据所述配置文件在多个编译环境镜像中选择一个编译环境镜像,根据所述编译环境镜像启动容器,并将所述容器的控制端口对接到所述长连接;
响应所述客户端通过所述长连接发送的编译指令,在所述容器内部对所述待编译文件执行所述编译指令;
响应所述客户端的预设编译结束指...
【专利技术属性】
技术研发人员:王少星,巫耀恒,
申请(专利权)人:北京京东尚科信息技术有限公司,北京京东世纪贸易有限公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。