構建Electron的常見問題(Mac)


背景

起因是產品的需求,需要更換Electron為底層平台,但因為會有不少定制化的功能要實現,必須自己實現此類內容,所以也就導致必須自己編譯Electron的源代碼。

整個構建過程,看Electron的構建文檔就行了:https://github.com/electron/i18n/blob/master/content/zh-CN/docs/development/build-instructions-gn.md

不過在構建Electron的過程中,出現了很多問題。

一、拉取不了chromium代碼。

這個問題大家都懂的,需要翻牆才拉得了代碼。這里需要注意了,整個構建代碼大約有20幾G,得留意工具的套餐有沒有這么多流量。

另外,一般來講我們是用終端命令行拉代碼,然而終端的請求是不會經過翻牆工具的,所以需要設代理。

例如我的小飛機是這么設的:

export http_proxy=http://127.0.0.1:1087;
export https_proxy=http://127.0.0.1:1087;

二、拉了好久都沒拉完。

一開始我是在宿舍拉代碼的,但用了一天一夜,都還沒有拉完,而終端的日志也讓人奔潰。

[7:52:44] Still working on:
[7:52:44]   src

后來感覺是因為宿舍的網速太慢,於是到公司去拉,約4個半小時就拉好!

[4:20:04] Still working on:
[4:20:04]   src/v8
Syncing projects: 100% (95/95), done.

所以,網速很重要!!!

三、拉不下來,報錯了。

在公司拉代碼時,第一次遇到報錯,拉取失敗。

[1:30:24] error: RPC failed; curl 18 transfer closed with outstanding read data remaining
[1:30:24] fatal: The remote end hung up unexpectedly
[1:30:24] fatal: early EOF
[1:30:24] fatal: index-pack failed

查詢資料說是git的 http.postBuffer 這個參數太小,會導致大文件拉不下來。

於是設置了:

git config --global http.postBuffer 999M

這么設置后,就正常拉完了!!!也就是第二次成功了。

四、還是拉不下來。

磁盤空間不足,也會導致代碼拉取失敗的!

整體代碼拉下來,大概是30幾G,另外編譯代碼生成的中間代碼也會有30幾G,所以要保證當前磁盤空間至少有70多G(一般128G的Mac就不用想編譯這東西了)。 

五、編譯出錯。

__main__.SdkError: 'Install Xcode, launch it, accept the license agreement, and run `sudo xcode-select -s /path/to/Xcode.app` to continue.'

這個錯誤,其實它說得很清楚,按提示處理就行。

sudo xcode-select -s /Applications/Xcode.app

總結

在整個構建過程中,問題主要是拉取代碼和編譯兩方面。拉取代碼保證網速、稍大的磁盤容量和Git http.postBuffer參數基本就沒什么問題,而編譯過程中的問題,按錯誤日志處理也就可以解決!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM