使用 electron-forge 创建 electron app 项目

本文最后更新于 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)

如果对你有帮助,别忘了给个免费的赞,谢谢。哈哈。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。