Aller au contenu principal

Synopsis

Comment utiliser les APIs de Nodejs et d'Electron.

Tous les modules intégrés de Node.js sont disponibles dans Electron, et les modules tiers pour Node sont totalement supportés (incluant les modules natifs).

Electron fournit également quelques modules supplémentaires intégrés pour le développement d'application de bureau natives. Certains modules ne sont disponibles que dans le processus principal, certains ne sont disponibles que dans le processus de rendu (page Web), et certains peuvent être utilisés dans l'un ou l'autre type de processus.

La règle de base est la suivante : si un module est lié à une GUI (interface graphique) ou au système de bas niveau, il ne doit être que dans le processus principal. Vous devez être familier avec le concept des scripts de processus principal et de processus de rendu pour pouvoir utiliser ces modules.

Le script principal ressemble à tout script Node.js :

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

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

Le processus de rendu n'est pas différent d'une page web normale, à l'exception de la possibilité qu'il a d'utiliser les modules de Node lorsque nodeIntegration est activé:

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

Affectation par décomposition

À partir de la 0.37, vous pouvez utiliser l'affectation par décomposition pour rendre l'utilisation des modules intégrés plus simple.

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

let win

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

Si vous avez besoin la totalité du module electron, vous pouvez faire un require et décomposer ensuite le tout pour accéder individuellement aux modules venant d'electron .

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

let win

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

Ceci est équivalent au code suivant :

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')
})