【Electron】使用 build-tools 在 Windows 中编译 electron
【Electron】使用 build-tools 在 Windows 中编译 electron
提前准备
- 预留好磁盘空间
- Git 缓存目录:%UserProfile%/.git_cache ,大概有 16G。
- electron_build_tools 目录:%UserProfile%/.electron_build_tools,大概近 1G。
- 源代码目录:近 20G 。
- 安装 Nodejs, 14.18.3 和 16.15.0 的版本都有编译过。
- 安装 yarn 模块
- 安装 Visual Studio,勾选 “使用 C++ 的桌面开发”,可以在右侧,顺便把 Windows 10 SDK (10.0.20348.0) 勾选上。
- 安装 Windows 10 SDK,版本号为 10.0.20348.0,需要包括 “Debugging Tools for Windows”,如果是通过 vs installer 安装的,可以去 设置 → 应用 → 找到你的 windows software development Kit → 修改 → change → next → 勾选 “Debugging Tools for Windows” 就可以了
- 需要一个梯子,需要下载 chrome 源码与工具的。
安装 Electron Build Tools
npm i -g @electron/build-tools
初始化
e init --bootstrap testing
修改 DEPOT_TOOLS_WIN_TOOLCHAIN 配置
在windows上,要使用 msvc 来编译,要设置 环境变量 DEPOT_TOOLS_WIN_TOOLCHAIN 这个为 0。才会使用本地的 msvc 版本,不设置这个会打包出错的,但在 %UserProfile%/.electron_build_tools/src/utils/depot-tools.js 中会默认设置 DEPOT_TOOLS_WIN_TOOLCHAIN 为 1。
我们可以找到 %UserProfile%/.electron_build_tools/configs/evm.testing.json 文件,在 env 中加入
{
...
"env": {
"CHROMIUM_BUILDTOOLS_PATH": "K:\\sources\\electron\\src\\buildtools",
"GIT_CACHE_PATH": "C:\\Users\\gaosh\\.git_cache",
"DEPOT_TOOLS_WIN_TOOLCHAIN": 0 // 在这里加上这么一行就可以了
}
}
同步与构建
| 命令 | 说明 |
|---|---|
| e init | 创建一个新的构建配置,同时初始化一个 GN 目录 |
| e sync | 获取 / 更新 / 同步 源码分支 |
| e build | 构建 |
| e start | 启动 |
可以通过 e sync 来同步更新、 e build 来编译
编译启动
通过 e start 来启动。

参考文档
官方构建文档:https://www.electronjs.org/zh/docs/latest/development/build-instructions-gn
build-tools 文档:https://github.com/electron/build-tools
【Electron】使用 build-tools 在 Windows 中编译 electron的更多相关文章
- 如何在Windows中编译Linux Unix的代码(采用cygwin)?
来源:http://www.cnblogs.com/rocky_yi/archive/2009/12/08/cygwin.html 作者:rocky_y 很多经典算法往往是用C++在linux下实 ...
- 在 Windows 中编译 Github 中的 GO 项目
1.相关软件与环境准备 1.1 GO 安装 下载地址,https://studygolang.com/dl,选择 Windows 版,本文安装到 D:\Go 1.2 LiteIDE 安装 下载地址,h ...
- Android Gradle 构建工具(Android Gradle Build Tools)是什么?
转载地址:http://mrfu.me/android/2015/07/17/New_Android_Gradle_Build_Tools/ 译者地址:[翻]一览新的 Android Gradle 构 ...
- windows下编译leveldb
前提条件,下载boost库并编译 boost库弄好后,就可以编译leveldb了 首先,下载leveldb-windows,这个github上有 一. 1文件->新建->从现有代码文件创建 ...
- visual studio 2013 for windows desk报error MSB8020: The build tools for v141错误
由于硬件限制,学习在touchgfx暂时在Windows下模拟仿真,了解其基本原理和有一个基本感性认识,因此安装了VS Express 2013 for Desktop轻量级编译器. 有TouchGF ...
- 在windows C++中编译并使用Lua脚本
早前就用过LUA ,只是局部的小项目使用,突然兴起想要写一些关于LUA 的 文章,记录曾经学习过的点点滴滴. 这里我使用的是LUA5.2作为 案例 lua做为轻量级脚本语言已经被广泛应用到应用软件以 ...
- C语言编译过程以及Windows中的gcc编译程序(通过cmd、记事本)
C语言的编译过程 1)预处理:宏定义展开.头文件展开.条件编译等,同时将代码中的注释删除,这里并不会检查语法 2)编译:检查语法,将预处理后的文件编译生成汇编文件 3)汇编:将汇编文件生成目标文件(二 ...
- VS2013下开发VC++程序,编译时提示错误error MSB8020: The build tools for v140 (Platform Toolset = 'v140') 的解决方案
1. 问题描述: 提示如下错误:error MSB8020: The builds tools for v140 (Platform Toolset = 'v140') cannot be found ...
- <转>boost 1.53 and STLPort build binary for windows
1.编译STLPort: 1.1 .开始菜单运行vs2008的命令行工具 1.2.进入E:\00.CODE.SDK\STLport-5.2.1\ 1.2.运行configure ...
随机推荐
- 学习ansible(一)
1.介绍 1 ansible基于Python开发的自动化运维工具 2 ansible基于ssh协议实现远程管理的工具,没有客户端 3 ansible软件可以实现多种批量管理操作 2.环境 主机 IP ...
- Effective Java —— 多字段下考虑使用建造者模式构建实例
本文参考 本篇文章参考自<Effective Java>第三版第二条"Consider a builder when faced with many constructor pa ...
- [C/C++基础知识] main函数的参数argc和argv
该篇文章主要是关于C++\C语言最基础的main函数的参数知识,是学习C++或C语言都必备的知识点.不知道你是否知道该知识?希望对大家有所帮助.一.main()函数参数通常我们在写主函数时都是void ...
- Flutter入门教程(四)第一个flutter项目解析
一.创建一个Flutter工程 1.1 命令行创建 首先我们找一个空目录用来专门存放flutter项目,然后在路径中直接输入cmd: 使用 flutter create <projectname ...
- Blog Ideas
Blog Ideas How-to Post Case Studies Product + Service Updates Product Reviews Content Survey Current ...
- 【每日日报】第十八天 ----java最全排序方法
1 今天看了Java的第三章 2 冒泡法排序: package Line; import java.util.Arrays; public class MaoPao { public static v ...
- Jquery中each的3种遍历方式
学习目标: 参考博文: https://blog.csdn.net/honey_th/article/details/7404273 一.Jquery中each的几种遍历方法 1. 选择器+遍历 &l ...
- Mybatis 多表实现多对一查询、添加操作
Mybatis 多表实现多对一查询.添加操作 学习内容: 1. 多对一之添加操作 1.1.需求 1.2.数据库表(多对一或一对多,数据库外键都是设置在多的一方) 1.3.类设计 1.4.Mapper ...
- EbitenCookBook中文教程 第一课:安装 Ebiten
本文实时更新原址:https://ebitencookbook.vercel.app/docs/CookBook_Start/class1 第一课 安装 Ebiten 欢迎大家来到 Ebiten 中文 ...
- LC-26
class Solution { public int removeDuplicates(int[] nums) { int slowIndex = 0, fastIndex = 1; if (num ...