【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的更多相关文章

  1. 如何在Windows中编译Linux Unix的代码(采用cygwin)?

    来源:http://www.cnblogs.com/rocky_yi/archive/2009/12/08/cygwin.html   作者:rocky_y 很多经典算法往往是用C++在linux下实 ...

  2. 在 Windows 中编译 Github 中的 GO 项目

    1.相关软件与环境准备 1.1 GO 安装 下载地址,https://studygolang.com/dl,选择 Windows 版,本文安装到 D:\Go 1.2 LiteIDE 安装 下载地址,h ...

  3. Android Gradle 构建工具(Android Gradle Build Tools)是什么?

    转载地址:http://mrfu.me/android/2015/07/17/New_Android_Gradle_Build_Tools/ 译者地址:[翻]一览新的 Android Gradle 构 ...

  4. windows下编译leveldb

    前提条件,下载boost库并编译 boost库弄好后,就可以编译leveldb了 首先,下载leveldb-windows,这个github上有 一. 1文件->新建->从现有代码文件创建 ...

  5. visual studio 2013 for windows desk报error MSB8020: The build tools for v141错误

    由于硬件限制,学习在touchgfx暂时在Windows下模拟仿真,了解其基本原理和有一个基本感性认识,因此安装了VS Express 2013 for Desktop轻量级编译器. 有TouchGF ...

  6. 在windows C++中编译并使用Lua脚本

    早前就用过LUA ,只是局部的小项目使用,突然兴起想要写一些关于LUA 的  文章,记录曾经学习过的点点滴滴. 这里我使用的是LUA5.2作为 案例 lua做为轻量级脚本语言已经被广泛应用到应用软件以 ...

  7. C语言编译过程以及Windows中的gcc编译程序(通过cmd、记事本)

    C语言的编译过程 1)预处理:宏定义展开.头文件展开.条件编译等,同时将代码中的注释删除,这里并不会检查语法 2)编译:检查语法,将预处理后的文件编译生成汇编文件 3)汇编:将汇编文件生成目标文件(二 ...

  8. 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 ...

  9. <转>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 ...

随机推荐

  1. Redis 是单进程单线程的?

    Redis 是单进程单线程的,redis 利用队列技术将并发访问变为串行访问,消 除了传统数据库串行控制的开销.

  2. Invalid prop: type check failed for prop "maxlength"

    Invalid prop: type check failed for prop "maxlength", element 框架时,因为想限制文本框的输入长度, maxlength ...

  3. vue2与vue3的区别

    template <template> <div class="wrap"> <div>{{ num }}</div> <Bu ...

  4. 高效使用Java构建工具,Maven篇|云效工程师指北

    大家好,我是胡晓宇,目前在云效主要负责Flow流水线编排.任务调度与执行引擎相关的工作. 作为一个有多年Java开发测试工具链开发经验的CRUD专家,使用过所有主流的Java构建工具,对于如何高效使用 ...

  5. HTTP1.1、HTTP2、HTTP3 演变

    推荐阅读:https://www.cnblogs.com/zwtblog/tag/计算机网络/ 目录 HTTP 基本概念 HTTP/1.1 相⽐ HTTP/1.0 提⾼了什么性能? HTTP/1.1如 ...

  6. angular组件开发

    项目中经常会有一些公共组件,比如header,如果每个页面都写一遍的话显得很冗余,而且不利于维护,这时候我们就会考虑将这些公共部分抽取出来,做成一个单独的组件. 然而angular不是很熟悉啊~怎么啵 ...

  7. javascript当中嵌套函数

    3)嵌套函数例 3.3.1<head>    <meta http-equiv="content-type" content="text/html; c ...

  8. 【每日日报】第五十三天---安装My SQL

    1 2今天安装了My SQL并学习了一些基础的命令 mysql下载及安装教程 2 没有成功安装SQL Server,误删了一些文件 3 明天继续看视频 ------------------------ ...

  9. 使用element UI el-upload组件实现视频文件上传及上传进度显示方法总结

    实现效果: 上传中: 上传完成: 代码: <el-form-item label="视频上传" prop="Video"> <!-- acti ...

  10. Android搞定权限申请

    0x00 前言 使用EasyPermissions库进行申请权限 打开App时就申请权限,如果用户拒绝权限后,会循环申请 如果永久拒绝后,会跳转到设置里继续申请 效果图: 注:不讲原理,先教你怎么实现 ...