本文最后更新于 2020-11-08
1. 設(shè)置國內(nèi)的 electron 鏡像地址
export ELECTRON_MIRROR="https://npm.taobao.org/mirrors/electron/"
如果你使用 zsh晚缩,可以在
.zshrc
中加入上面這句
用 windows 的請自行百度怎么添加 windows 環(huán)境變量
2. 使用 electron-forge 腳手架漓穿,創(chuàng)建一個(gè) electron 項(xiàng)目
yarn create electron-app your-app-project-name
這樣就在本地創(chuàng)建了一個(gè) your-app-project-name
的項(xiàng)目文件夾
進(jìn)入文件夾
使用
yarn start
啟動(dòng)項(xiàng)目
附加說明
如果你直接使用
yarn create electron-app your-app-project-name
命令創(chuàng)建項(xiàng)目
可能會卡在Installing NPM dependences...
這個(gè)步驟
因?yàn)樗恢痹谙螺d electron昌妹;默認(rèn)使用的是 github 的下載地址
github 是個(gè)孤兒零院,慢成sb了瓶籽, 70M 的包死活下載不了
所以我們需要在環(huán)境變量里指定 electron 的鏡像地址(本文步驟1)
深入探討這個(gè)問題
問:為什么需要配置的環(huán)境變量是 ELECTRON_MIRROR
這個(gè)名字尊剔?
答:通過我查找源碼洞慎,定位到負(fù)責(zé)下載 electron 安裝包并解壓安裝的代碼痛单,如下:
package 名稱「@electron/get」
具體文件為 @electron/get/dist/cjs/artifact-utils.js
"use strict";
// ... 省略源代碼
const BASE_URL = 'https://github.com/electron/electron/releases/download/';
const NIGHTLY_BASE_URL = 'https://github.com/electron/nightlies/releases/download/';
// ... 省略源代碼
function mirrorVar(name, options, defaultValue) {
// Convert camelCase to camel_case for env var reading
const lowerName = name.replace(/([a-z])([A-Z])/g, (_, a, b) => `${a}_$`).toLowerCase();
return (process.env[`NPM_CONFIG_ELECTRON_${lowerName.toUpperCase()}`] ||
process.env[`npm_config_electron_${lowerName}`] ||
process.env[`npm_package_config_electron_${lowerName}`] ||
process.env[`ELECTRON_${lowerName.toUpperCase()}`] ||
options[name] ||
defaultValue);
}
async function getArtifactRemoteURL(details) {
const opts = details.mirrorOptions || {};
let base = mirrorVar('mirror', opts, BASE_URL);
// ... 省略源代碼
}
// ... 省略源代碼
可見劲腿,環(huán)境變量可以為 npm_config_electron_mirror
或者 ELECTRON_mirror
或者 ...
并且不區(qū)分大小寫旭绒,也可以駝峰寫法
而且,如果你設(shè)置了這個(gè)“鏡像環(huán)境變量”焦人,則優(yōu)先使用這個(gè)地址挥吵,否則使用默認(rèn)地址(sb github 地址 orz)
如果對你有幫助,別忘了給個(gè)免費(fèi)的贊花椭,謝謝忽匈。哈哈。