第一次體驗 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
網上方法試了一通,不行。最後去看的源碼,先上個人解決方法。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
電腦上的結果)瀏覽器
npm start
進入 node_modules
文件夾裏的 electron
文件夾,打開裏面的 install.js
文件緩存
查看 downloadArtifact
函數的定義,裏面的 getArtifactRemoteURL
獲取遠程下載的地址,能夠經過 log
打印出來查看,這樣就能看出爲何下載不下來app
加個打印,查看下載地址,將打印出來的地址輸入到瀏覽器中,查看結果,能夠看到確實很難下載electron
這就試試網上的換源方法,在 node
命令前添加參數,設置當前運行的 process.env
裏的值(從後面代碼看出這樣設置的)函數
ELECTRON_MIRROR="https://npm.taobao.org/mirrors/electron/" node install.js
依然下載不下來,打印出來的網址爲https://npm.taobao.org/mirrors/electron/v7.0.0/electron-v7.0.0-darwin-x64.zip 與能夠查看的源地址比較,發現 v7.0.0
多了個 v
,下圖是能夠下載的源圖
仍是去看看這個下載地址是怎麼生成的吧,查看 getArtifactRemoteURL
函數,以下
能夠看出是由 base
, path
, file
拼接起來的,默認參數以下
能夠經過設置 process.env
來修改 base
,path
,file
,設置方法如前面的 node
,npm
命令前添加的 key-value
值。如修改 base
,命令行前添加 ELECTRON_MIRROR="https://npm.taobao.org/mirrors/electron/"
,設置 base
的 key
能夠寫成 ELECTRON_MIRROR
,也能夠寫成 npm-config-electron-mirror
,(其餘形式參見代碼)。來看看 path
,由 version
決定或者 process.env
裏的 npm-config-electron-custom-dir
(多種形式均可以),這個 version
來源於 electron
文件夾下的 package.json
文件,能夠看到是 7.0.0
爲什麼多了個v
,回到downloadArtifact
函數,能夠看到代碼添加的v
因此要獲得正確的源,就本身設置process.env
裏的npm-config-electron-custom-dir
其餘的方法,好比從 https://npm.taobao.org/mirrors/electron/7.0.0/ 下載離線包,放在緩存的位置,設置緩存等,能夠看代碼設置參數
看一下不一樣平臺的默認參數,純解惑