Electron中文手册
  • 文档概述
  • 开发指南目录
  • 构建说明(Linux)
  • 构建说明(macOS)
  • 构建说明(Windows)
  • 构建系统概述
  • 编码规范
  • 在 macOS 中调试
  • 在 Windows 中调试
  • 在C ++代码中使用clang-format
  • 在调试器中设置符号服务器
  • 源代码目录结构
  • Chrome升级清单
  • Chromium 开发指南
  • V8 开发指南
  • 教程目录
    • 关于 Electron
    • Electron 版本说明
    • API弃用说明
    • 快速入门
    • 支持的平台
    • 桌面环境集成
    • 系统通知
    • 离屏渲染
    • 在线/离线事件检测
    • 多线程
    • REPL
    • 键盘快捷键
    • DevTools扩展
    • 使用原生模块
    • 使用 Pepper Flash 插件
    • 使用 Selenium 和 WebDriver
    • 使用 Widevine CDM 插件
    • 应用分发
    • 应用打包
    • 主进程调试
    • 使用 node-inspector 进行主进程调试
    • 使用 VSCode 进行主进程调试
    • Mac App Store应用提交指南
    • Windows App Store应用提交指南
    • 安全,本地功能和你的责任
    • Headless CI Systems 测试
  • API接口目录
    • API接口之公用接口
      • 应用语言
      • 开发概要
      • 专业术语
      • 常见问题
      • 环境变量
      • 快捷键字符串
      • 命令行
      • 客户端请求
      • 剪贴板
      • <File> H5 File文件操作
      • 无框窗口
      • <window.open> window.open打开新窗口或打开时传递消息
      • 沙盒选项
    • API接口之主进程接口
      • 整体控制
      • 全局快捷键
      • 图标创建与应用
      • 屏幕
      • 窗口
      • 菜单
      • 菜单项
      • 系统托盘
      • 网页内容
      • 从主进程到渲染进程的异步通信
      • 对话框
      • 创建和控制视图
      • 会话
      • 会话,缓存和代理等控制
      • 页面请求
      • HTTP/HTTPS请求处理
      • 协议的注册和处理
      • 使用系统默认应用程序管理文件或URL
      • 下载项管理
      • 进程控制
      • Chromium原生网络库
      • 获取系统首选项
      • 电源状态
      • 节能管理
      • 调试工具
      • 奔溃报告
      • 性能数据收集
      • 自动更新
      • TouchBar触摸条
      • TouchBar触摸条按钮
      • TouchBar触摸条拾色器
      • TouchBar触摸条分组
      • TouchBar触摸条scrubber
      • TouchBar触摸条分段控件
      • TouchBar触摸条label标签
      • TouchBar触摸条弹出框
      • TouchBar触摸条滑块
      • TouchBar触摸条间隔符
    • API接口之渲染进程接口
      • 页面渲染
      • <webview> webview标签
      • 渲染进程与主进程通信
      • 从渲染进程到主进程的异步通信
      • 子窗口
      • 捕获桌面资源
  • 结构列表
    • 蓝牙设备对象
    • 证书对象
    • 证书主体对象
    • Cookie对象
    • 崩溃报告对象
    • 桌面捕获源对象
    • 显示器对象
    • 打印机信息对象
    • 文件过滤器对象
    • 最近使用的项目
    • 常用列表项
    • CPU使用率对象即程序占用的CPU资源
    • IO值对象
    • 内存信息对象
    • 进程内存信息对象
    • 内存使用详细信息
    • Mime类型缓冲区
    • 矩形对象
    • 删除客户端证书对象
    • 删除密码对象
    • Scrubber项对象
    • 分段控制对象
    • 快捷方式对象
    • 任务对象
    • 缩略图工具栏按钮对象
    • 上传blob对象
    • 上传数据对象
    • 上传文件系统对象
    • 上传文件对象
    • 上传原始数据对象
Powered by GitBook
On this page
  • 前提要求
  • 获取代码
  • 引导
  • 构建
  • 32位系统支持
  • Visual Studio项目
  • 清理
  • 相关测试
  • 故障排除
  • 未找到命令xxxx
  • 致命内部编译器错误:C1001
  • Assertion failed: ((handle))->activecnt >= 0
  • 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

Was this helpful?

构建说明(Windows)

Previous构建说明(macOS)Next构建系统概述

Last updated 4 years ago

Was this helpful?

在Windows中,构建Electron

前提要求

  • Windows 7/Server 2008 R2或者更高的版本

  • Visual Studio 2015 Update 3 -

  • (已实践证明的一点的是该版本的Python安装后重启电脑才可使用!)

假如需要创建一个完整发行版,则使用 symstore.exe在.pdb文件中新建符号存储.

如果你现在还没有安装 Windows , 有一个 timebombed 版本的 Windows ,你可以用它来构建 Electron.

Building Electron完全使用命令行脚本完成,您可以使用任何编辑器开发Electron,但不能使用Visual Studio完成(将来可能支持)。

注意:即使Visual Studio不用于构建,但它仍然是必须的,因为我们需要它提供的构建工具链。

获取代码

$ git clone https://github.com/electron/electron.git

引导

引导脚本将下载所有必需的构建依赖项并创建构建项目文件,由于使用了 ninja进行构建,因此不存在 Visual Studio项目.

$ cd electron
$ python script\bootstrap.py -v

构建

创建 Release和 Debug target:

$ python script\build.py

还可以仅构建 Debug target :

$ python script\build.py -c D

在构建完成后,你可以在 out\D (debug target) 或者 out\R (release target)下找到 Electron.exe .

32位系统支持

要构建32位目标,需要在运行引导脚本时传递 --target_arch=ia32参数:

$ python script\bootstrap.py -v --target_arch=ia32

Visual Studio项目

要生成Visual Studio项目,可以传递 --msvs参数:

$ python script\bootstrap.py --msvs

清理

清理构建文件:

$ npm run clean

只清理out和dist目录:

$ npm run clean-build

注意:以上两个clean命令都需要在构建之前再次运行 bootstrap。

相关测试

故障排除

未找到命令xxxx

遇到如 Command xxxx not found之类错误, 你可以尝试使用 VS2015命令提示控制台来执行构建脚本

致命内部编译器错误:C1001

确保您已安装最新的Visual Studio

Assertion failed: ((handle))->activecnt >= 0

如果在 Cygwin 下构建的,你可能会看到 bootstrap.py 失败并且附带下面错误 :

Assertion failed: ((handle))->activecnt >= 0, file src\win\pipe.c, line 1430

Traceback (most recent call last):
  File "script/bootstrap.py", line 87, in <module>
    sys.exit(main())
  File "script/bootstrap.py", line 22, in main
    update_node_modules('.')
  File "script/bootstrap.py", line 56, in update_node_modules
    execute([NPM, 'install'])
  File "/home/zcbenz/codes/raven/script/lib/util.py", line 118, in execute
    raise e
subprocess.CalledProcessError: Command '['npm.cmd', 'install']' returned non-zero exit status 3

这是由同时使用 Cygwin Python 和 Win32 Node 造成的 bug.解决办法就是使用 Win32 Python 执行 引导脚本 (假设你已经在目录 C:\Python27 下安装了 Python):

$ /cygdrive/c/Python27/python.exe script/bootstrap.py

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 来代替 .

参见

创建一个一样的目录 ,.

免费下载VS 2015社区版
Python 2.7
Node.js
Git
Windows调试工具
modern.ie
应该可以解决问题
构建系统概述:测试