概要 | Synopsis

概要

如何使用 Node.js 和 Electron API。

所有 Node.js 的内置模块都可以在 Electron 和第三方节点模块中使用(也包括原生模块)。

Electron 还为开发原生桌面应用程序提供了一些额外的内置模块。某些模块仅在主进程中可用,有些模块仅在渲染器进程(网页)中可用,有些模块可用于这两个进程。

基本规则是:如果一个模块是 GUI 或低级系统相关的,那么它应该只在主进程中可用。您需要熟悉主流程与渲染流程脚本的概念,才能使用这些模块。

主流程脚本就像一个普通的 Node.js 脚本一样:

const {app, BrowserWindow} = require('electron') let win = null app.on('ready', () => { win = new BrowserWindow{width: 800, height: 600}) win.loadURL('https://github.com') })

渲染器进程与普通网页没有区别,除了使用节点模块的额外功能:

<!DOCTYPE html> <html> <body> <script> const {app} = require('electron').remote console.log(app.getVersion()) </script> </body> </html>

要运行您的应用,请阅读运行您的应用。

解构赋值

从0.37开始,您可以使用解构赋值来更容易地使用内置模块。

const {app, BrowserWindow} = require('electron') let win app.on('ready', () => { win = new BrowserWindow() win.loadURL('https://github.com') })

如果你需要整个electron模块,你可以要求它,然后使用解构从electron来访问各个模块。

const electron = require('electron') const {app, BrowserWindow} = electron let win app.on('ready', () => { win = new BrowserWindow() win.loadURL('https://github.com') })

这相当于下面的代码:

const electron = require('electron') const app = electron.app const BrowserWindow = electron.BrowserWindow let win app.on('ready', () => { win = new BrowserWindow() win.loadURL('https://github.com') })