Electron API de referencia rápida y plantillas de configuración


Tabla de referencia rápida de API del proceso principal

Módulo Descripción de la función Métodos comunes Descripción
app Controlar el ciclo de vida de la aplicación app.on('ready')、app.quit()、app.getPath('userData') Gestiona el inicio, cierre, rutas, registro de protocolos, etc. de la aplicación
BrowserWindow Crear y gestionar ventanas new BrowserWindow(options)、win.loadFile()、win.loadURL()、win.webContents Contenedor principal de la interfaz de usuario de la aplicación Electron; en su interior se ejecuta el proceso de renderizado
ipcMain Interfaz de comunicación del proceso principal ipcMain.on(channel, callback)、ipcMain.handle(channel, handler) Escucha mensajes o solicitudes de llamada enviadas por el proceso de renderizado
Menu Crear menús de aplicación Menu.buildFromTemplate(menuTemplate)、Menu.setApplicationMenu(menu) Permite personalizar elementos de menú, atajos de teclado y menús contextuales
Tray Gestión de la bandeja del sistema new Tray(icon)、tray.setToolTip()、tray.setContextMenu(menu) Muestra un icono en la barra de tareas; se usa comúnmente en aplicaciones residentes en segundo plano
Dialog Diálogos nativos del sistema dialog.showOpenDialog()、dialog.showSaveDialog()、dialog.showMessageBox() Interacciones del sistema como selección de archivos, guardado y avisos de mensajes
Notification Notificaciones del sistema new Notification({ title, body }).show() Envía notificaciones nativas del sistema, puede incluir un callback de clic
Shell Acceder a recursos externos del sistema shell.openExternal(url)、shell.showItemInFolder(path) Abrir páginas web externas, carpetas y ejecutar archivos
Protocol Registrar protocolos personalizados protocol.registerFileProtocol()、protocol.handle() Se utiliza para carga de recursos personalizados o enlaces profundos
Session Gestionar sesiones, caché y cookies session.defaultSession.cookies.get()、clearCache() Control de bajo nivel sobre datos de navegación y solicitudes
Net Solicitudes de red HTTP/HTTPS nativas net.request(options) Módulo de red de más bajo nivel, con mejor rendimiento quefetch
PowerMonitor Monitorear el estado de energía del sistema powerMonitor.on('suspend')、on('resume') Escucha estados como suspensión, activación y bloqueo de pantalla del equipo
Clipboard Operaciones con el portapapeles clipboard.readText()、clipboard.writeText() Compatible con copiar y pegar texto, imágenes, etc. entre plataformas
GlobalShortcut Registrar atajos de teclado globales globalShortcut.register('CommandOrControl+X', fn) Atajos de teclado que funcionan en todas las ventanas y en segundo plano

Tabla de referencia rápida de API del proceso de renderizado

Módulo Descripción de la función Métodos comunes Descripción
ipcRenderer Comunicación con el proceso principal ipcRenderer.send()、ipcRenderer.invoke()、ipcRenderer.on() Se utiliza para que el proceso de renderizado envíe, reciba e invoque eventos del proceso principal
webFrame Controlar el contenido de la página actual webFrame.setZoomFactor()、webFrame.insertCSS() Modificar dinámicamente el zoom y los estilos de la página
contextBridge Exposición segura de API contextBridge.exposeInMainWorld('api', {...}) Al habilitarcontextIsolationse interactúa de forma segura con el proceso principal
desktopCapturer Capturar el contenido de la pantalla desktopCapturer.getSources({ types: ['window', 'screen'] }) Se utiliza para capturas de pantalla o grabación de pantalla
Notification API de notificaciones new Notification('标题', { body: '内容' }) Enviar notificaciones mediante el estándar Notification del navegador
Clipboard Operaciones con el portapapeles navigator.clipboard.readText() Puede acceder al portapapeles del sistema (algunas funciones están restringidas)
Web Storage / IndexedDB Almacenamiento local localStorage.setItem()、indexedDB.open() Guardar datos ligeros o estructurados
Fetch / Axios Solicitudes de red fetch(url)、axios.get() Se utiliza para acceder a interfaces remotas y cargar recursos
DOM / Window Control de página document.querySelector()、window.open() Se pueden utilizar todas las API web

Tabla de referencia rápida de módulos auxiliares comunes

Módulo Función principal Ejemplo
fs Operaciones de archivos fs.readFileSync(path)、fs.writeFile(path, data)
path Unión de rutas path.join(__dirname, 'index.html')
os Información del sistema os.platform()、os.homedir()
child_process Ejecutar procesos secundarios exec('ls', callback)
electron-store Configuración persistente store.set('key', value)、store.get('key')
sqlite3 / better-sqlite3 Base de datos local db.prepare('SELECT * FROM notes').all()
axios / node-fetch Solicitudes de red axios.post(url, data)
node-gyp Compilación de módulos nativos node-gyp rebuild

Plantillas de archivos de configuración y explicaciones

Plantilla de package.json y explicación

{
  "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/"
    }
  }
}

Descripción:

Campo Significado
name / version / description Nombre de la aplicación, número de versión e información de descripción
main Archivo de entrada del proceso principal (obligatorio)
scripts Define los scripts de comandos,npm startinicio,npm run distempaquetado
devDependencies Dependencias de desarrollo (Electron, herramientas de empaquetado, etc.)
build electron-builderelementos de configuración de
appId ID único de la aplicación, utilizado para firma e identificación de actualizaciones
productName Nombre de la aplicación que se muestra después del empaquetado
directories.output Ruta de salida del empaquetado
files Especifica los archivos y directorios que se incluirán en el paquete de la aplicación
win/mac/linux Configuración de empaquetado independiente para cada plataforma (iconos, formato de destino)

Plantilla de electron-builder.yml y explicación

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

Descripción:

Elemento de configuración Descripción
appId / productName Identificador único y nombre de la aplicación
directories.output Directorio de salida del empaquetado
files Lista de archivos a empaquetar (compatible con comodines)
win / mac / linux Objetivos de compilación y configuración de iconos para diferentes sistemas
publish Configuración de la fuente de publicación para actualizaciones automáticas (por ejemplo, GitHub Releases)

Plantilla de tsconfig.json de TypeScript y explicación

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

Descripción:

Opción Significado
target Versión de JavaScript objetivo de compilación
module Sistema de módulos; el proceso principal de Electron generalmente usacommonjs
outDir / rootDir Directorio de salida y de código fuente
strict Habilitar la verificación estricta de tipos
esModuleInterop Permitir importaciones predeterminadas de módulos que no son ES
resolveJsonModule Compatibilidad con importación de archivos JSON
skipLibCheck Omitir la verificación de archivos de declaración para acelerar la compilación
Otras extensiones