本文最后更新于 2020-11-08
1. 设置国内的 electron 镜像地址
export ELECTRON_MIRROR="https://npm.taobao.org/mirrors/electron/"
如果你使用 zsh,可以在
.zshrc
中加入上面这句
用 windows 的请自行百度怎么添加 windows 环境变量
2. 使用 electron-forge 脚手架,创建一个 electron 项目
yarn create electron-app your-app-project-name
这样就在本地创建了一个 your-app-project-name
的项目文件夹
进入文件夹
使用
yarn start
启动项目
附加说明
如果你直接使用
yarn create electron-app your-app-project-name
命令创建项目
可能会卡在Installing NPM dependences...
这个步骤
因为它一直在下载 electron;默认使用的是 github 的下载地址
github 是个孤儿,慢成sb了, 70M 的包死活下载不了
所以我们需要在环境变量里指定 electron 的镜像地址(本文步骤1)
深入探讨这个问题
问:为什么需要配置的环境变量是 ELECTRON_MIRROR
这个名字?
答:通过我查找源码,定位到负责下载 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}_${b}`).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);
// ... 省略源代码
}
// ... 省略源代码
可见,环境变量可以为 npm_config_electron_mirror
或者 ELECTRON_mirror
或者 ...
并且不区分大小写,也可以驼峰写法
而且,如果你设置了这个“镜像环境变量”,则优先使用这个地址,否则使用默认地址(sb github 地址 orz)
如果对你有帮助,别忘了给个免费的赞,谢谢。哈哈。