- 构建步骤(Windows)
- 前提条件
- Exclude source tree from Windows Security
- 构建
- 32 位构建
- Visual Studio 项目
- 故障排查
- Command xxxx not found
- Fatal internal compiler error: C1001
- LNK1181: cannot open input file ‘kernel32.lib’
- Error: ENOENT, stat ‘C:\Users\USERNAME\AppData\Roaming\npm’
- node-gyp is not recognized as an internal or external command
- 无法在“…”处创建目录:文件名太长
- 错误:使用未声明的标识符“DefaultDelegateCheckMode”
- 导入错误:没有名为 win32file 的模块
- 构建脚本挂起, 直到某个按键按下才有响应
构建步骤(Windows)
按照下面的指南在Windows下构建 Electron 本身,以此创建自定义 Electron 二进制文件。 为了将您的应用代码与预构建的 Electron 二进制文件打包并发布,请参阅 应用程序发布 指南。
前提条件
- Windows 10 / Server 2012 R2 或更高版本
- Visual Studio 2017 15.7.2 或更高版本 - 免费下载 VS 2019 社区版
- 请参阅Chromium构建文档,以了解有哪些Visual Studio 组件需要安装等详细信息。
- 如果您的 Visual Studio 安装在非默认目录中, 您需要 设置几个环境变量来将工具链指向您的安装路径。
vs2019_install = DRIVE:\path\to\Microsoft Visual Studio\2019\Community
,用您当前已安装版本替换2019
和Community
以及用您当前安装Visual Studio的驱动器号替换DRIVE:
一般情况下将会是C:
。WINDOWSSDKDIR = DRIVE:\path\to\Windows Kits\10
, replacingDRIVE:
with the drive that Windows Kits is on. 一般情况下将会是C:
。
- Python for Windows (pywin32) 扩展对于构建流程也是必需的。
- Node.js
- Git
- Debugging Tools for Windows of Windows SDK 10.0.15063.468 if you plan on creating a full distribution since
symstore.exe
is used for creating a symbol store from.pdb
files.- 不同版本的SDK可以同时安装 安装 SDK,打开 Visual Studio 安装程序,选择
更改
→单个组件
,向下滚动并选择适当的 要安装的 Windows SDK 组件。 另一个选择是查看 windows SDK 和仿真器存档 并分别下载 SDK 的独立版本。 - 还必须安装 SDK 调试工具。 如果已安装了 Windows 10 SDK 通过 Visual Studio 安装程序,然后可以用以下方式安装它们:
控制面板
→程序
→程序和功能
→选择“Windows 软件开发工具包”→更改
→更改
→选中“Windows 调试工具”→更改
。 或者,您可以下载独立的 SDK 安装程序,并且使用它安装调试工具。
- 不同版本的SDK可以同时安装 安装 SDK,打开 Visual Studio 安装程序,选择
如果您当前没有安装 Windows, dev.microsoftedge.com 上有时间限制的 Windows 版本,你可以用来构建 Electron。
构建 Electron 完全由命令行脚本完成,无法通过 Visual Studio 完成。 您可以使用任何编辑器开发 Electron,但将来将会使用 Visual Studio 构建支持。
注意: 即使 Visual Studio 不用于构建,但是仍然需要,因为我们需要它提供的构建工具链。
Exclude source tree from Windows Security
Windows Security doesn’t like one of the files in the Chromium source code (see https://crbug.com/441184), so it will constantly delete it, causing gclient sync
issues. You can exclude the source tree from being monitored by Windows Security by following these instructions.
构建
32 位构建
为了构建 32bit 版本,您需要通过 target_cpu = “x86"
作为 GN 参数。 可以使用不同的 GN 输出目录(例如, out/Release-x86
) 和不同的参数,在 64 位目标旁边构建 32 位目标。
$ gn gen out/Release-x86 --args="import(\"//electron/build/args/release.gn\") target_cpu=\"x86\""
其他构建步骤完全一样。
Visual Studio 项目
要生成 Visual Studio 项目,可以传递 --ide=vs2017
参数 给 gn gen
:
$ gn gen out/Testing --ide=vs2017
故障排查
Command xxxx not found
如果你遇到了一个错误,类似 Command xxxx not found
, 可以尝试使用 VS2015 Command Prompt
控制台来执行构建脚本.
Fatal internal compiler error: C1001
确保你已经安装了 Visual Studio 的最新安装包.
LNK1181: cannot open input file ‘kernel32.lib’
重新安装 32位的 Node.js.
Error: ENOENT, stat ‘C:\Users\USERNAME\AppData\Roaming\npm’
创建那个目录 应该可以解决问题:
$ mkdir ~\AppData\Roaming\npm
node-gyp is not recognized as an internal or external command
如果你使用 Git Bash 来构建,或许会遇到这个错误,可以使用 PowerShell 或 VS2015 Command Prompt 来代替.
无法在“…”处创建目录:文件名太长
node.js 有一些 极长的路径名,默认情况下,windows 上的 git 不能正确处理长路径名(即使 windows 支持它们)。 这应该可以修复它:
$ git config --system core.longpaths true
错误:使用未声明的标识符“DefaultDelegateCheckMode”
This can happen during build, when Debugging Tools for Windows has been installed with Windows Driver Kit. Uninstall Windows Driver Kit and install Debugging Tools with steps described above.
导入错误:没有名为 win32file 的模块
确保已使用 pip install pywin32
安装了 pywin32
。
构建脚本挂起, 直到某个按键按下才有响应
这个bug 是 Windows 命令提示符的一个”功能” It happens when clicking inside the prompt window with QuickEdit
enabled and is intended to allow selecting and copying output text easily. 由于每次意外点击都会暂停构建过程,您可能需要在命令的属性中禁用此 功能。