[發明專利]編譯方法與編譯系統在審
| 申請號: | 201910441480.8 | 申請日: | 2019-05-24 |
| 公開(公告)號: | CN111984261A | 公開(公告)日: | 2020-11-24 |
| 發明(設計)人: | 王少星;巫耀恒 | 申請(專利權)人: | 北京京東尚科信息技術有限公司;北京京東世紀貿易有限公司 |
| 主分類號: | G06F8/41 | 分類號: | G06F8/41;G06F8/71 |
| 代理公司: | 北京律智知識產權代理有限公司 11438 | 代理人: | 孫寶海;袁禮君 |
| 地址: | 100086 *** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 編譯 方法 系統 | ||
本公開提供一種編譯方法與裝置。編譯方法包括:響應客戶端的預設文件上傳指令接收待編譯文件與配置文件;響應所述客戶端的長連接建立請求與所述客戶端建立長連接;根據所述配置文件在多個編譯環境鏡像中選擇一個編譯環境鏡像,根據所述編譯環境鏡像啟動容器,并將所述容器的控制端口對接到所述長連接;響應所述客戶端通過所述長連接發送的編譯指令,在所述容器內部對所述待編譯文件執行所述編譯指令;響應所述客戶端的預設編譯結束指令斷開所述長連接,回收所述容器。本公開提供的編譯方法可以在降低終端消耗的情況下提供多種編譯環境。
技術領域
本公開涉及計算機技術領域,具體而言,涉及一種能夠提供多種編譯環境且降低資源消耗的編譯方法與編譯系統。
背景技術
目前,前端(泛指web、app、electron等界面)的工程類型已經非常多樣化,常見的包括html5、react、vue、angularjs等等,但每一種技術都需要編譯成目標工程才能運行,這就導致了前端開發人員需要在終端中安裝多種構建環境。
目前開發人員只能采用本地構建的方式,針對每種不同開發環境分別進行環境部署,但這些環境部署在同一個終端時,經常會產生沖突,比如某工程依賴python版本2.x但另一個工程依賴python版本3.0,或者依賴的操作系環境與終端的不一致。雖然目前針對具體的技術棧有一些沖突處理方案(如node下的nvm、使用虛擬機等),但操作并不便利,且依賴本地終端。
首先,由于本地終端性能不一,如果終端性能低或出現故障,開發效率會非常低下。其次,編譯為高CPU消耗工作,編譯工作一旦開始,整個終端的CPU資源會被全部占滿,開發人員有時不得不進入“原地等待”狀態。第三,對于依賴不同操作系統的編譯環境,只能采用虛擬機的方式進行,性能低又會占用額外資源。第四,編譯出的前端項目直接以本地文件形式出現,不利于團隊共享、預覽,對于多人協同開發的工程,有可能因為兩臺終端安裝依賴的時間不同,導致某些模塊的版本不同,雖然大多時候這種變換不會影響到項目運行,但畢竟會造成最終生成的產出物不同,埋下隱患。
需要說明的是,在上述背景技術部分公開的信息僅用于加強對本公開的背景的理解,因此可以包括不構成對本領域普通技術人員已知的現有技術的信息。
發明內容
本公開的目的在于提供一種編譯方法與編譯裝置,用于至少在一定程度上克服由于相關技術的限制和缺陷而導致的終端安裝多種編譯環境導致編譯效率低、同步性差等問題。
根據本公開實施例的第一方面,提供一種編譯方法,包括:
響應客戶端的預設文件上傳指令接收待編譯文件與配置文件;
響應所述客戶端的長連接建立請求與所述客戶端建立長連接;
根據所述配置文件在多個編譯環境鏡像中選擇一個編譯環境鏡像,根據所述編譯環境鏡像啟動容器,并將所述容器的控制端口對接到所述長連接;
響應所述客戶端通過所述長連接發送的編譯指令,在所述容器內部對所述待編譯文件執行所述編譯指令;
響應所述客戶端的預設編譯結束指令斷開所述長連接,回收所述容器。
在本公開的一種示例性實施例中,所述根據所述配置文件在多個編譯環境鏡像中選擇一個編譯環境鏡像包括:
根據所述配置文件確定所述待編譯文件的項目標識符;
在所述項目標識符存在對應編譯環境鏡像時,直接選擇所述對應環境鏡像;
否則,選擇所述配置文件記錄的指定編譯環境鏡像;
在所述配置文件未記錄指定編譯環境鏡像時,選擇默認編譯環境鏡像。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京京東尚科信息技術有限公司;北京京東世紀貿易有限公司,未經北京京東尚科信息技術有限公司;北京京東世紀貿易有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201910441480.8/2.html,轉載請聲明來源鉆瓜專利網。





