electron 7.0.0安裝失敗

第一次體驗 electron,就遇到了安裝一直不成功的問題,網上的方法基本試過,總結就是切換源。可是基本只說了設置ELECTRON_MIRROR="https://npm.taobao.org/mirrors/electron/",對,在之前的版本上只設置這個就行。但 7.0.0 不行,看下面個人失敗過程及解決過程。node

官網示例

#Clone this repository
git clone https://github.com/electron/electron-quick-start
# Go into the repository
cd electron-quick-start
# Install dependencies
npm install
# Run the app
npm start

跟着運行,走不通,卡在了 node install.js這裏git

image.png

網上方法試了一通,不行。最後去看的源碼,先上個人解決方法。github

解決方法

安裝 cross-env ,是爲了給後面的命令設置環境變量(設置proccess.env),你也能夠不安裝這個,先本身設好系統環境變量npm

更新下,新版本已是 7.0.1 了, 若是你用的是 7.0.1, 注意修改成cross-env npm_config_electron_mirror="https://npm.taobao.org/mirrors/electron/" npm_config_electron_custom_dir="7.0.1" npm install, 也就是 npm_config_electron_custom_dir要設置爲版本號`**json

#Install cross-env, 注意是全局安裝
npm install -g cross-env
#Clone this repository
git clone https://github.com/electron/electron-quick-start
# Go into the repository
cd electron-quick-start
# Install dependencies
cross-env npm_config_electron_mirror="https://npm.taobao.org/mirrors/electron/" npm_config_electron_custom_dir="7.0.0" npm install

成功安裝(這個截圖是前面沒安裝cross-env,在 mac 電腦上的結果)瀏覽器

image.png

npm start

image.png

解決過程

進入 node_modules文件夾裏的 electron文件夾,打開裏面的 install.js文件緩存

image.png

查看 downloadArtifact函數的定義,裏面的 getArtifactRemoteURL獲取遠程下載的地址,能夠經過 log打印出來查看,這樣就能看出爲何下載不下來app

image.png

加個打印,查看下載地址,將打印出來的地址輸入到瀏覽器中,查看結果,能夠看到確實很難下載electron

image.png

這就試試網上的換源方法,在 node命令前添加參數,設置當前運行的 process.env裏的值(從後面代碼看出這樣設置的)函數

ELECTRON_MIRROR="https://npm.taobao.org/mirrors/electron/" node install.js

image.png

依然下載不下來,打印出來的網址爲https://npm.taobao.org/mirrors/electron/v7.0.0/electron-v7.0.0-darwin-x64.zip 與能夠查看的源地址比較,發現 v7.0.0 多了個 v,下圖是能夠下載的源圖

image.png

仍是去看看這個下載地址是怎麼生成的吧,查看 getArtifactRemoteURL 函數,以下

image.png

能夠看出是由 base, path, file 拼接起來的,默認參數以下

image.png

能夠經過設置 process.env來修改 basepathfile,設置方法如前面的 nodenpm命令前添加的 key-value值。如修改 base,命令行前添加 ELECTRON_MIRROR="https://npm.taobao.org/mirrors/electron/",設置 basekey能夠寫成 ELECTRON_MIRROR,也能夠寫成 npm-config-electron-mirror,(其餘形式參見代碼)。來看看 path,由 version決定或者 process.env裏的 npm-config-electron-custom-dir(多種形式均可以),這個 version來源於 electron文件夾下的 package.json文件,能夠看到是 7.0.0

image.png

image.png

爲什麼多了個v,回到downloadArtifact函數,能夠看到代碼添加的v

image.png

image.png

因此要獲得正確的源,就本身設置process.env裏的npm-config-electron-custom-dir

其餘的方法,好比從 https://npm.taobao.org/mirrors/electron/7.0.0/ 下載離線包,放在緩存的位置,設置緩存等,能夠看代碼設置參數

看一下不一樣平臺的默認參數,純解惑

image.png

相關文章
相關標籤/搜索