【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 ...
随机推荐
- Redis 是单进程单线程的?
Redis 是单进程单线程的,redis 利用队列技术将并发访问变为串行访问,消 除了传统数据库串行控制的开销.
- Invalid prop: type check failed for prop "maxlength"
Invalid prop: type check failed for prop "maxlength", element 框架时,因为想限制文本框的输入长度, maxlength ...
- vue2与vue3的区别
template <template> <div class="wrap"> <div>{{ num }}</div> <Bu ...
- 高效使用Java构建工具,Maven篇|云效工程师指北
大家好,我是胡晓宇,目前在云效主要负责Flow流水线编排.任务调度与执行引擎相关的工作. 作为一个有多年Java开发测试工具链开发经验的CRUD专家,使用过所有主流的Java构建工具,对于如何高效使用 ...
- HTTP1.1、HTTP2、HTTP3 演变
推荐阅读:https://www.cnblogs.com/zwtblog/tag/计算机网络/ 目录 HTTP 基本概念 HTTP/1.1 相⽐ HTTP/1.0 提⾼了什么性能? HTTP/1.1如 ...
- angular组件开发
项目中经常会有一些公共组件,比如header,如果每个页面都写一遍的话显得很冗余,而且不利于维护,这时候我们就会考虑将这些公共部分抽取出来,做成一个单独的组件. 然而angular不是很熟悉啊~怎么啵 ...
- javascript当中嵌套函数
3)嵌套函数例 3.3.1<head> <meta http-equiv="content-type" content="text/html; c ...
- 【每日日报】第五十三天---安装My SQL
1 2今天安装了My SQL并学习了一些基础的命令 mysql下载及安装教程 2 没有成功安装SQL Server,误删了一些文件 3 明天继续看视频 ------------------------ ...
- 使用element UI el-upload组件实现视频文件上传及上传进度显示方法总结
实现效果: 上传中: 上传完成: 代码: <el-form-item label="视频上传" prop="Video"> <!-- acti ...
- Android搞定权限申请
0x00 前言 使用EasyPermissions库进行申请权限 打开App时就申请权限,如果用户拒绝权限后,会循环申请 如果永久拒绝后,会跳转到设置里继续申请 效果图: 注:不讲原理,先教你怎么实现 ...