W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
Electron 使用 gyp 來(lái)生成項(xiàng)目 ,使用 ninja 來(lái)構(gòu)建項(xiàng)目. 項(xiàng)目配置可以在 .gyp
和 .gypi
文件中找到.
下面的 gyp
文件包含了構(gòu)建 Electron 的主要規(guī)則 :
atom.gyp
定義了 Electron 它自己是怎樣被構(gòu)建的.common.gypi
調(diào)整 node 的構(gòu)建配置,來(lái)讓它結(jié)合 Chromium 一起構(gòu)建.vendor/brightray/brightray.gyp
定義了 brightray
是如何被構(gòu)建的,并且包含了默認(rèn)配置來(lái)連接到 Chromium.vendor/brightray/brightray.gypi
包含了常用的創(chuàng)建配置.在 Chromium 還是一個(gè)相當(dāng)大的項(xiàng)目的時(shí)候,最后鏈接階段會(huì)花了好幾分鐘,這讓開(kāi)發(fā)變得很困難. 為了解決這個(gè)困難,Chromium 引入了 "component build" ,這讓每個(gè)創(chuàng)建的組建都是分隔開(kāi)的共享庫(kù),讓鏈接更快,但是這浪費(fèi)了文件大小和性能.
在 Electron 中,我們采用了一個(gè)非常相似的方法 : 在創(chuàng)建 Debug
, 二進(jìn)制文件會(huì)被鏈接進(jìn)入一個(gè) Chromium 組件的共享版本庫(kù)來(lái)達(dá)到快速鏈接; 在創(chuàng)建 Release
, 二進(jìn)制文件會(huì)被鏈接進(jìn)入一個(gè)靜態(tài)版本庫(kù), 所以我們可以有最小的二進(jìn)制文件size和最佳的體驗(yàn).
在運(yùn)行 bootstrap 腳本的時(shí)候,所有的 Chromium 預(yù)編譯二進(jìn)制文件會(huì)被下載.默認(rèn)靜態(tài)庫(kù)和共享庫(kù)會(huì)被下載,并且項(xiàng)目的最后大小會(huì)在 800MB 到 2GB 之間,這取決于平臺(tái)類(lèi)型.
默認(rèn),libchromiumcontent
是從 Amazon Web Services 上下載下來(lái)的.如果設(shè)置了 LIBCHROMIUMCONTENT_MIRROR
環(huán)境變量,bootstrap腳本會(huì)從這里下載下來(lái). libchromiumcontent-qiniu-mirror
是 libchromiumcontent
的映射.如果你不能連接 AWS,你可以切換下載路徑:export LIBCHROMIUMCONTENT_MIRROR=http://7xk3d2.dl1.z0.glb.clouddn.com/
如果只是想快速搭建一個(gè) Electron 的測(cè)試或開(kāi)發(fā)環(huán)境,可以通過(guò) --dev
參數(shù)只下載共享版本庫(kù):
$ ./script/bootstrap.py --dev
$ ./script/build.py -c D
在 Release
和 Debug
構(gòu)建的時(shí)候后,Electron 鏈接了不同配置的庫(kù) .然而 gyp
不支持為不同的配置文件進(jìn)行不同的鏈接設(shè)置.
為了規(guī)避這個(gè)問(wèn)題,Electron 在運(yùn)行 gyp
的時(shí)候,使用了一個(gè) gyp
的變量 libchromiumcontent_component
來(lái)控制應(yīng)該使用哪個(gè)鏈接設(shè)置,并且只生成一個(gè)目標(biāo).
與大多數(shù)的項(xiàng)目不同,它們使用 Release
和 Debug
作為目標(biāo)名字,而 Electron 使用使用的是 R
和 D
.這是因?yàn)槿绻欢x了一個(gè) Release
或 Debug
構(gòu)建配置,gyp
會(huì)隨機(jī)崩潰,并且在同一時(shí)候,Electron 只生成一個(gè)目標(biāo),如上所述.
這只對(duì)開(kāi)發(fā)者可用,如果想重新構(gòu)建 Electron ,將不會(huì)成功.
更多建議:
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式: