Référence rapide de l'API Electron et modèle de configuration


Référence rapide de l'API du processus principal

Module Description de la fonction Méthodes courantes Description
app Contrôler le cycle de vie de l'application app.on('ready')、app.quit()、app.getPath('userData') Gérer le démarrage, l'arrêt, les chemins, l'enregistrement de protocole, etc. de l'application
BrowserWindow Créer et gérer des fenêtres new BrowserWindow(options)、win.loadFile()、win.loadURL()、win.webContents Le conteneur principal de l'interface utilisateur d'une application Electron, qui exécute le processus de rendu à l'intérieur
ipcMain Interface de communication du processus principal ipcMain.on(channel, callback)、ipcMain.handle(channel, handler) Écouter les messages ou les requêtes d'appel envoyés par le processus de rendu
Menu Créer un menu d'application Menu.buildFromTemplate(menuTemplate)、Menu.setApplicationMenu(menu) Éléments de menu personnalisables, raccourcis et menus contextuels
Zone de notification Gestion de la zone de notification new Tray(icon)、tray.setToolTip()、tray.setContextMenu(menu) Afficher une icône dans la barre des tâches, couramment utilisée pour les applications résidentes en arrière-plan
Boîte de dialogue Boîtes de dialogue natives du système dialog.showOpenDialog()、dialog.showSaveDialog()、dialog.showMessageBox() Interactions système telles que la sélection de fichiers, l'enregistrement et les invites de message
Notification Notification système new Notification({ title, body }).show() Envoyer des notifications système natives, avec des rappels de clic optionnels
Tri de Shell Appeler des ressources système externes shell.openExternal(url)、shell.showItemInFolder(path) Ouvrir des pages web externes, des dossiers et des fichiers exécutables
Protocol Enregistrer un protocole personnalisé protocol.registerFileProtocol()、protocol.handle() Pour le chargement de ressources personnalisées ou les liens profonds
Session Gérer les sessions, le cache et les cookies session.defaultSession.cookies.get()、clearCache() Contrôle de bas niveau sur les données de navigation et les requêtes
Net Requêtes réseau HTTP/HTTPS natives net.request(options) Un module réseau de plus bas niveau, avec de meilleures performances que...fetch
PowerMonitor Surveiller l'état d'alimentation du système powerMonitor.on('suspend')、on('resume') Écouter la mise en veille, le réveil, le verrouillage de l'écran et d'autres états de l'ordinateur
Clipboard Opérations du presse-papiers clipboard.readText()、clipboard.writeText() Prend en charge le copier-coller multiplateforme de texte, d'images, etc.
GlobalShortcut Enregistrer des raccourcis globaux globalShortcut.register('CommandOrControl+X', fn) Raccourcis clavier fonctionnant dans toutes les fenêtres et en arrière-plan

Référence rapide de l'API du processus de rendu

Module Description de la fonction Méthodes courantes Description
ipcRenderer Communiquer avec le processus principal ipcRenderer.send()、ipcRenderer.invoke()、ipcRenderer.on() Utilisé par le processus de rendu pour envoyer, recevoir et invoquer des événements du processus principal
webFrame Contrôler le contenu de la page actuelle webFrame.setZoomFactor()、webFrame.insertCSS() Modifier dynamiquement le zoom et les styles de la page
contextBridge Exposer des API en toute sécurité contextBridge.exposeInMainWorld('api', {...}) Lors de l'activationcontextIsolationLors d'une interaction sécurisée avec le processus principal
desktopCapturer Capturer le contenu de l'écran desktopCapturer.getSources({ types: ['window', 'screen'] }) Pour les captures d'écran ou les fonctionnalités d'enregistrement d'écran
Notification API Notifications new Notification('标题', { body: '内容' }) Envoyer des notifications à l'aide de l'API Notifications standard du navigateur
Clipboard Opérations du presse-papiers navigator.clipboard.readText() Peut accéder au presse-papiers du système (certaines fonctionnalités sont limitées)
Stockage Web / IndexedDB Stockage local localStorage.setItem()、indexedDB.open() Enregistrer des données légères ou structurées
Fetch / Axios Requête réseau fetch(url)、axios.get() Pour accéder aux API distantes et charger des ressources
DOM / Window Contrôle de page document.querySelector()、window.open() Toutes les API Web sont disponibles

Référence rapide des modules utilitaires courants

Module Fonctionnalités principales Exemple
fs Opérations sur les fichiers fs.readFileSync(path)、fs.writeFile(path, data)
path Path join path.join(__dirname, 'index.html')
os Informations système os.platform()、os.homedir()
child_process Exécuter un processus enfant exec('ls', callback)
electron-store Configuration persistante store.set('key', value)、store.get('key')
sqlite3 / better-sqlite3 Base de données locale db.prepare('SELECT * FROM notes').all()
axios / node-fetch Requête réseau axios.post(url, data)
node-gyp Compilation de modules natifs node-gyp rebuild

Modèles et instructions pour les fichiers de configuration

Modèle et instructions pour package.json

{
  "name": "my-electron-app",
  "version": "1.0.0",
  "description": "示例 Electron 应用",
  "main": "main.js",
  "scripts": {
    "start": "electron .",
    "pack": "electron-builder --dir",
    "dist": "electron-builder"
  },
  "devDependencies": {
    "electron": "^33.0.0",
    "electron-builder": "^24.6.0"
  },
  "build": {
    "appId": "com.example.myelectronapp",
    "productName": "MyElectronApp",
    "directories": {
      "output": "dist"
    },
    "files": [
      "main.js",
      "preload.js",
      "renderer/**/*"
    ],
    "win": {
      "target": "nsis",
      "icon": "assets/icon.ico"
    },
    "mac": {
      "category": "public.app-category.productivity",
      "icon": "assets/icon.icns"
    },
    "linux": {
      "target": "AppImage",
      "icon": "assets/"
    }
  }
}

Description:

Fields Signification
name / version / description Nom de l'application, numéro de version et informations de description
main Fichier d'entrée du processus principal (obligatoire)
scripts Définir les scripts de commandes,npm startStart,npm run distPack
devDependencies Dépendances de développement (Electron, outils d'empaquetage, etc.)
build electron-builderÉlément de configuration
appId ID d'application unique, utilisé pour la signature et l'identification des mises à jour
productName Nom de l'application affiché après l'empaquetage
directories.output Chemin de sortie de l'empaquetage
files Spécifiez les fichiers et répertoires à empaqueter dans l'application
win/mac/linux Configuration d'empaquetage indépendante pour chaque plateforme (icônes, formats cibles)

Modèle et instructions pour electron-builder.yml

appId: com.example.myelectronapp
productName: MyElectronApp
directories:
  output: dist
files:
  - "main.js"
  - "preload.js"
  - "renderer/**/*"
win:
  target: nsis
  icon: assets/icon.ico
mac:
  target: dmg
  icon: assets/icon.icns
linux:
  target: AppImage
  icon: assets/
publish:
  provider: github
  repo: my-electron-app
  owner: username

Description:

Élément de configuration Description
appId / productName Identifiant et nom uniques de l'application
directories.output Répertoire de sortie de l'empaquetage
files Liste des fichiers empaquetés (prend en charge les caractères génériques)
win / mac / linux Cibles de compilation et configurations d'icônes pour différents systèmes
publish Configuration de la source de publication pour les mises à jour automatiques (ex. GitHub Releases)

Modèle et explication de tsconfig.json TypeScript

{
  "compilerOptions": {
    "target": "ES2020",
    "module": "commonjs",
    "strict": true,
    "outDir": "./dist",
    "rootDir": "./src",
    "esModuleInterop": true,
    "moduleResolution": "node",
    "resolveJsonModule": true,
    "skipLibCheck": true
  },
  "include": ["src/**/*"],
  "exclude": ["node_modules"]
}

Description:

Options Signification
target Version JavaScript de la cible de compilation
module Système de modules, généralement utilisé par le processus principal d'Electroncommonjs
outDir / rootDir Répertoires de sortie et sources
strict Activer la vérification stricte des types
esModuleInterop Autoriser les imports par défaut de modules non ES
resolveJsonModule Prise en charge de l'importation de fichiers JSON
skipLibCheck Ignorer la vérification des fichiers de déclaration pour accélérer la compilation
autres extensions