构建说明
按照下面的步骤构建 Electron,来生成自定义的 Electron 二进制文件。 为了将您的应用代码与预构建的 Electron 二进制文件打包并发布,请参阅 应用程序发布 指 南。
平台要求
各个平台所对应的构建要求如下:
构建工具
Electron的构建工具 自动化了很多配置不同的从源代码编译Electron的设置和构建目标。 如果您希望手动设置环境,则说明如下。
Electron 使用 GN 生成项目,并用 Ninja 完成构建。 项目配置位于 .gn
和 .gni
文件中。
GN 文件
The following gn
files contain the main rules for building Electron:
BUILD.gn
指明了如何构建 Electron,还包括与 Chromium 相关的默认配置。build/args/{testing,release,all}.gn
包含 Electron 的默认构建参数。
前置知识
此外,你还需要安装depot_tools
,这是一个用于获取Chromium,及其相关依赖工具。
另外,如果使用Windows系统, 你需要设置环境变量DEPOT_TOOLS_WIN_TOOLCHAIN=0
。 依次打开 Control Panel
→ System and Security
→ System
→ Advanced system settings
,然后添加系统变量 DEPOT_TOOLS_WIN_TOOLCHAIN
,并设置默认值为 0
. 这将促使depot_tools
使用本地已安装的Visual Studio(默认状态下,depot_tools
将会下载一个只有谷歌内部员工有权限使用的内部版本)。
设置 git 缓存
如果您想 checkout 多份 Electron 源码 (例如多个并行目录 checkout 到不同的分支), 推荐使用 git 缓存来加速后续对 gclient
的调用。 为此,设置 GIT_CACHE_PATH
环境变量:
$ export GIT_CACHE_PATH="${HOME}/.git_cache"
$ mkdir -p "${GIT_CACHE_PATH}"
# 这将使用大约16G
获取源码
$ mkdir electron && cd electron
$ gclient config --name "src/electron" --unmanaged https://github.com/electron/electron
$ gclient sync --with_branch_heads --with_tags
# 这将需要一段时间,喝杯咖啡休息一下。
除了使用
https://github.com/electron/electron
, 你也可以使用你自己的 fork (形如https://github.com/<username>/electron
)。
拉/推的注意事项
如果您将来打算从 electron
官方地址进行 git pull
或 git push
,那么您需要更新相应文件夹的源 URL。
$ cd src/electron
$ git remote remove origin
$ git remote add origin https://github.com/electron/electron
$ git checkout main
$ git branch --set-upstream-to=origin/main
$ cd -
📝 gclient
会检查 src/electron
目录下的 DEPS
文件,从中获取依赖信息 (就像 Chromium 或 Node.js 那样)。 运行 gclient sync -f
确保所有用来构建 Electron 的依赖都符合该文件的描述。
运行以下命令拉取源码:
$ cd src/electron
$ git pull
$ gclient sync -f
构建
设置chromium build tools的环境变量
On Linux & MacOS
$ cd src
$ export CHROMIUM_BUILDTOOLS_PATH=`pwd`/buildtools
在 Windows 中:
# cmd
$ cd src
$ set CHROMIUM_BUILDTOOLS_PATH=%cd%\buildtools
# PowerShell
$ cd src
$ $env:CHROMIUM_BUILDTOOLS_PATH = "$(Get-Location)\buildtools"
要生成 Electron 的测试构建配置,请执行以下操作:
On Linux & MacOS
$ gn gen out/Testing --args="import(\"//electron/build/args/testing.gn\")"
在 Windows 中:
# cmd
$ gn gen out/Testing --args="import(\"//electron/build/args/testing.gn\")"
# PowerShell
gn gen out/Testing --args="import(\`"//electron/build/args/testing.gn\`")"
要生成 Electron 的 Release build 配置,请执行以下操作:
On Linux & MacOS
$ gn gen out/Release --args="import(\"//electron/build/args/release.gn\")"
在 Windows 中:
# cmd
$ gn gen out/Release --args="import(\"//electron/build/args/release.gn\")"
# PowerShell
$ gn gen out/Release --args="import(\`"//electron/build/args/release.gn\`")"
注意: 通过上面的配置,这将在 src/
下生成 out/Testing
测试构建目录 或 out/Release
发布构建目录。 您可以用另一个名称替换 Testing|Release
,但它应该是 out
的子目录。
如果你想改变构建参数,可以通过运行gn args out/Testing
来将参数带入编辑器,而无需再次运行gn gen
命令。 要查看可用的构建配置选项的列表,运行 gn args out/Testing --list
。
**构建时请运行 ninja
[参数] [输出目录] electron
** 注意:这也需要点时间,也可能会让你的电脑发烫。
测试配置:
$ ninja -C out/Testing electron
发布配置:
$ ninja -C out/Release electron