非常教程

Electron参考手册

指南·开发 | Guides: Development

构建说明(Linux) | Build Instructions (Linux)

遵循以下指导原则在Linux上构建Electron。

先决条件

  • 至少25GB磁盘空间和8GB RAM。
  • Python 2.7.x. 像CentOS 6.x这样的发行版仍然使用Python 2.6.x,因此您可能需要使用Python来检查您的Python版本python -V
  • Node.js的 有多种方法可以安装Node。您可以从nodejs.org下载源代码并编译它。这样做可以允许将Node作为标准用户安装在您自己的主目录中。或者尝试使用诸如NodeSource之类的存储库。

clang3.4或更高。

  • GTK +和libnotify的开发标题。

在Ubuntu上,安装以下库:

$ sudo apt-get install build-essential clang libdbus-1-dev libgtk2.0-dev \
                       libnotify-dev libgnome-keyring-dev libgconf2-dev \
                       libasound2-dev libcap-dev libcups2-dev libxtst-dev \
                       libxss1 libnss3-dev gcc-multilib g++-multilib curl \
                       gperf bison

在RHEL/CentOS上,安装以下库:

$ sudo yum install clang dbus-devel gtk2-devel libnotify-devel \
                   libgnome-keyring-devel xorg-x11-server-utils libcap-devel \
                   cups-devel libXtst-devel alsa-lib-devel libXrandr-devel \
                   GConf2-devel nss-devel

在Fedora上,安装以下库:

$ sudo dnf install clang dbus-devel gtk2-devel libnotify-devel \
                   libgnome-keyring-devel xorg-x11-server-utils libcap-devel \
                   cups-devel libXtst-devel alsa-lib-devel libXrandr-devel \
                   GConf2-devel nss-devel

其他发行版可以通过软件包管理器(如pacman)提供类似的安装包。或者可以从源代码编译。

获取代码

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

引导

引导脚本将下载所有必要的构建依赖项并创建构建项目文件。您必须拥有Python 2.7.x才能使脚本成功。下载某些文件可能需要很长时间。请注意,我们正在使用ninja构建Electron,因此没有Makefile生成。

$ cd electron
$ ./script/bootstrap.py --verbose

交叉编译

如果您想为arm目标构建,您还应该安装以下依赖项:

$ sudo apt-get install libc6-dev-armhf-cross linux-libc-dev-armhf-cross \
                       g++-arm-linux-gnueabihf

为了交叉编译armia32目标,您应该将--target_arch参数传递给bootstrap.py脚本:

$ ./script/bootstrap.py -v --target_arch=arm

构建

如果你想建立既ReleaseDebug目标:

$ ./script/build.py

这个脚本将会在目录中放置一个非常大的Electron可执行文件out/R。文件大小超过了1.3千兆字节。这是因为Release目标二进制文件包含调试符号。要减小文件大小,请运行create-dist.py脚本:

$ ./script/create-dist.py

这将使dist目录中的文件大小更小的工作分配。运行create-dist.py脚本之后,您可能需要删除仍在其中的1.3+千兆字节二进制文件out/R

您也可以Debug只构建目标:

$ ./script/build.py -c D

构建完成后,您可以electron在下找到调试二进制文件out/D

清除

若要清除生成文件,请执行以下操作:

$ npm run clean

仅清理outdist目录:

$ npm run clean-build

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

故障排除

加载共享库时出错:libtinfo.so.5

预编译clang将尝试链接到libtinfo.so.5。取决于主机体系结构,符号链接适当的libncurses

$ sudo ln -s /usr/lib/libncurses.so.5 /usr/lib/libtinfo.so.5

测试

请参阅构建系统概述:测试

高级主题

默认的构建配置是针对主要桌面Linux发行版的。要为特定分配或设备构建,以下信息可能对您有所帮助。

构建局部libchromiumcontent

为避免使用预编译的二进制文件libchromiumcontent,您可以libchromiumcontent在本地构建。要这样做,请按照下列步骤操作:

  1. 安装depot_tools
  1. 安装额外的构建依赖项
  1. 获取GIT子模块:
$ git submodule update --init --recursive
  1. 复制.gclient配置文件$ cp vendor / libchromiumcontent / .gclient。
  1. --build_libchromiumcontent开关传递给bootstrap.py脚本:
$ ./script/bootstrap.py -v --build_libchromiumcontent

请注意,默认情况下,shared_library配置不是内置的,所以Release如果您使用此模式,则只能构建Electron版本:

$ ./script/build.py -c R

使用系统clang而不是下载的clang二进制文件

默认情况下,Electron clang由Chromium项目提供的预建二进制文件构建。如果由于某种原因想要使用clang系统中安装的内容进行构建,则可以bootstrap.py使用--clang_dir=<path>交换机进行调用。通过传递构建脚本将假定clang二进制文件驻留在中<path>/bin/

例如,如果您安装clang/user/local/bin/clang

$ ./script/bootstrap.py -v --build_libchromiumcontent --clang_dir /usr/local
$ ./script/build.py -c R

使用以外的编译器 clang

为了与像编译器构建Electrong++,你首先需要禁用clang--disable_clang第一开关,然后设置CCCXX环境变量到你想要的人。

例如使用GCC工具链构建:

$ env CC=gcc CXX=g++ ./script/bootstrap.py -v --build_libchromiumcontent --disable_clang
$ ./script/build.py -c R

环境变量

CC和之外CXX,您还可以设置以下环境变量来自定义建筑配置:

  • CPPFLAGS
  • CPPFLAGS_host
  • CFLAGS
  • CFLAGS_host
  • CXXFLAGS
  • CXXFLAGS_host
  • AR
  • AR_host
  • CC
  • CC_host
  • CXX
  • CXX_host
  • LDFLAGS

在执行bootstrap.py脚本时必须设置环境变量,但在build.py脚本中不起作用。

Electron

Electron 是一个使用 JavaScript, HTML 和 CSS 等 Web 技术创建原生程序的框架,它负责比较难搞的部分,你只需把精力放在你的应用的核心上即可。

主页 https://electron.atom.io/
源码 https://github.com/electron/electron
发布版本 1.7.9

Electron目录

1.指南 | Guides
2.指南·开发 | Guides: Development
3.Webview 组件 |
4.加速器 | Accelerator
5.API
6.API·对象 | API·Objects
7.app
8.autoUpdater
9.浏览器总览 | BrowserView
10.浏览器窗口 | BrowserWindow
11.浏览器窗口代理 | BrowserWindowProxy)
12.ClientRequest
13.剪贴板 | clipboard
14.内容追踪 | contentTracing
15.小型文字档案 | Cookies
16.crashReporter
17.调试器 | Debugger
18.desktopCapturer
19.dialog
20.电子下载 | DownloadItem
21.环境变量 | Environment Variables
22.无框窗口 | Frameless Window
23.globalShortcut
24.IncomingMessage
25.ipcMain
26.IPC渲染器 | ipcRenderer
27.语言环境 | Locales
28.画面 | Menu
29.MenuItem
30.本地图像 | nativeImage
31.net
32.通知 | Notification
33.权限监控 | powerMonitor
34.权限存储拦截器 | powerSaveBlocker
35.处理 | process
36.协议 | protocol
37.远程 | remote
38.sandbox
39.屏幕 | screen
40.会话 | session
41.shell
42.系统表现 | systemPreferences
43.触摸板 | TouchBar
44.触摸板按钮 | TouchBarButton
45.触摸板颜色选择器 | TouchBarColorPicker
46.触摸板组 | TouchBarGroup
47.触摸板标签 | TouchBarLabel
48.触摸板弹出框 | TouchBarPopover
49.触摸板清理 | TouchBarScrubber
50.触摸板分段控制 | TouchBarSegmentedControl
51.触摸板滑块 | TouchBarSlider
52.触摸板间隔 | TouchBarSpacer
53.Tray
54.网页内容 | webContents
55.网页框架 | webFrame
56.网页要求 | WebRequest
57.窗口开启 | window.open