構建Electron的常見問題(Mac)

来源:https://www.cnblogs.com/lovesong/archive/2019/06/25/11087431.html
-Advertisement-
Play Games

背景 起因是產品的需求,需要更換Electron為底層平臺,但因為會有不少定製化的功能要實現,必須自己實現此類內容,所以也就導致必須自己編譯Electron的源代碼。 整個構建過程,看Electron的構建文檔就行了:https://github.com/electron/i18n/blob/mas ...


背景

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

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

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

一、拉取不了chromium代碼。

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

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

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

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參數基本就沒什麼問題,而編譯過程中的問題,按錯誤日誌處理也就可以解決!


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 回到目錄 1. 名稱由來 BJT的全稱是雙極性結型晶體管(Bipolar Junction Transistor),國內俗稱三極體。其實,在英語中,三極體(triode)特指以前的真空電子管形式的三極體,而不是我們現在普遍使用的半導體三極體。“tri-”的意思是“三”,“ode”的意思是“極”,當年 ...
  • 因為目前環境Python3.x與Python2.x版本並存,所以導致以上問題。 解決方法: 第一步,vim /usr/bin/firewall-cmd, 將#!/usr/bin/python -Es 改為 #!/usr/bin/python2 -Es 第二步,vim /usr/sbin/firewa ...
  • Win10激活 註意:以管理員身份運行,需要電腦有網(親測激活企業版沒問題) 然後一條一條複製執行 slmgr /ipk NPPR9-FWDCX-D2C8J-H872K-2YT43 slmgr /skms kms.03k.org slmgr /ato ...
  • 一、負載均衡的作用 1、轉發功能 按照一定的演算法【權重、輪詢】,將客戶端請求轉發到不同應用伺服器上,減輕單個伺服器壓力,提高系統併發量。 2、故障移除 通過心跳檢測的方式,判斷應用伺服器當前是否可以正常工作,如果伺服器期宕掉,自動將請求發送到其他應用伺服器。 3、恢復添加 如檢測到發生故障的應用服務 ...
  • 一 Kubernetes dashboard簡介 1.1 Web UI簡介 dashboard是基於Web的Kubernetes用戶界面。可以使用dashboard將容器化應用程式部署到Kubernetes集群,對容器化應用程式進行故障排除,以及管理集群資源。可以使用dashboard來概述群集上運 ...
  • lsof介紹 安裝lsof 使用lsof ...
  • 什麼時候需要安裝 如果使用 protoc 命令,遇到 Protoc not found ,表示未安裝。或者,執行時出現錯誤: This parser only recognizes "proto2" ,則表示不是3.0版。 安裝過程及可能遇到的問題 安裝指令 詳細介紹請參考此文: "protobuf ...
  • 前言 最近一段時間都在做小程式。 雖然是第二次開發小程式,但是上次做小程式已經是一年前的事了,所以最終還是被坑得死去活來。 這次是從零開始開發一個小程式,其實除了一些莫名其妙的相容性問題,大多數坑點都是在微信小程式的各個入口場景處。 所以這裡整理一下微信小程式的各個入口場景,以及從這些入口場景進入小 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...