Ir para o conteúdo principal

Sinopse

Como usar APIs Node.js e Electron.

All of Node.js's built-in modules are available in Electron and third-party node modules also fully supported as well (including the native modules).

O Electron também fornece alguns módulos extras para o desenvolvimento de aplicativos desktop. Some modules are only available in the main process, some are only available in the renderer process (web page), and some can be used in either process type.

A regra básica é: se um módulo for GUI ou relacionado ao sistema de baixo nível, então deve estar disponível apenas no processo principal. You need to be familiar with the concept of main process vs. renderer process scripts to be able to use those modules.

The main process script is like a normal Node.js script:

const { app, BrowserWindow } = require('electron')
let win = null

app.whenReady().then(() => {
win = new BrowserWindow({ width: 800, height: 600 })
win.loadURL('https://github.com')
})

The renderer process is no different than a normal web page, except for the extra ability to use node modules if nodeIntegration is enabled:

<!DOCTYPE html>
<html>
<body>
<script>
const fs = require('fs')
console.log(fs.readFileSync(__filename, 'utf8'))
</script>
</body>
</html>

Atribuição de desestruturação

A partir de 0,37, você pode usar tarefa de desestruturação para facilitar a utilização módulos internos.

const { app, BrowserWindow } = require('electron')

let win

app.whenReady().then(() => {
win = new BrowserWindow()
win.loadURL('https://github.com')
})

Se você precisar de todo o módulo electron, você pode exigi-lo e depois usar desestruturação para acessar os módulos individuais do electron.

const electron = require('electron')
const { app, BrowserWindow } = electron

let win

app.whenReady().then(() => {
win = new BrowserWindow()
win.loadURL('https://github.com')
})

Isto equivale ao seguinte código:

const electron = require('electron')
const app = electron.app
const BrowserWindow = electron.BrowserWindow
let win

app.whenReady().then(() => {
win = new BrowserWindow()
win.loadURL('https://github.com')
})