AI Summary 113.17649.0 Electron API 速查与配置模板摘要 2026-08-15
Electron API 速查与配置模板 主进程 API 速查表 模块 功能描述 常用方法 说明 app 控制应用生命周期 app.on('ready')、app..

Electron API 速查与配置模板


主进程 API 速查表

模块 功能描述 常用方法 说明
app 控制应用生命周期 app.on('ready')、app.quit()、app.getPath('userData') 管理应用启动、退出、路径、协议注册等
BrowserWindow 创建与管理窗口 new BrowserWindow(options)、win.loadFile()、win.loadURL()、win.webContents Electron 应用的主要 UI 容器,内部运行渲染进程
ipcMain 主进程通信接口 ipcMain.on(channel, callback)、ipcMain.handle(channel, handler) 监听渲染进程发来的消息或调用请求
Menu 创建应用菜单 Menu.buildFromTemplate(menuTemplate)、Menu.setApplicationMenu(menu) 可自定义菜单项、快捷键、右键菜单
Tray 系统托盘管理 new Tray(icon)、tray.setToolTip()、tray.setContextMenu(menu) 在任务栏显示图标,常用于后台常驻应用
Dialog 系统原生对话框 dialog.showOpenDialog()、dialog.showSaveDialog()、dialog.showMessageBox() 文件选择、保存、消息提示等系统交互
Notification 系统通知 new Notification({ title, body }).show() 发送系统原生通知,可带点击回调
Shell 调用系统外部资源 shell.openExternal(url)、shell.showItemInFolder(path) 打开外部网页、文件夹、执行文件
Protocol 注册自定义协议 protocol.registerFileProtocol()、protocol.handle() 用于自定义资源加载或深度链接
Session 管理会话、缓存、Cookie session.defaultSession.cookies.get()、clearCache() 对浏览数据和请求做底层控制
Net 原生 HTTP/HTTPS 网络请求 net.request(options) 更底层的网络模块,性能优于 fetch
PowerMonitor 监控系统电源状态 powerMonitor.on('suspend')、on('resume') 监听电脑睡眠、唤醒、锁屏等状态
Clipboard 剪贴板操作 clipboard.readText()、clipboard.writeText() 支持跨平台复制粘贴文本、图片等
GlobalShortcut 注册全局快捷键 globalShortcut.register('CommandOrControl+X', fn) 跨窗口、后台生效的快捷键

渲染进程 API 速查表

模块 功能描述 常用方法 说明
ipcRenderer 与主进程通信 ipcRenderer.send()、ipcRenderer.invoke()、ipcRenderer.on() 用于渲染进程发送、接收、调用主进程事件
webFrame 控制当前页面内容 webFrame.setZoomFactor()、webFrame.insertCSS() 动态修改页面缩放、样式
contextBridge 安全暴露 API contextBridge.exposeInMainWorld('api', {...}) 在启用 contextIsolation 时安全地与主进程交互
desktopCapturer 捕获屏幕内容 desktopCapturer.getSources({ types: ['window', 'screen'] }) 用于截图或屏幕录制功能
Notification 通知 API new Notification('标题', { body: '内容' }) 使用浏览器标准 Notification 发送通知
Clipboard 剪贴板操作 navigator.clipboard.readText() 可访问系统剪贴板(部分功能受限制)
Web Storage / IndexedDB 本地存储 localStorage.setItem()、indexedDB.open() 保存轻量或结构化数据
Fetch / Axios 网络请求 fetch(url)、axios.get() 用于访问远程接口、加载资源
DOM / Window 页面控制 document.querySelector()、window.open() 所有 Web API 均可使用

常用辅助模块速查表

模块 主要功能 示例
fs 文件操作 fs.readFileSync(path)、fs.writeFile(path, data)
path 路径拼接 path.join(__dirname, 'index.html')
os 系统信息 os.platform()、os.homedir()
child_process 执行子进程 exec('ls', callback)
electron-store 持久化配置 store.set('key', value)、store.get('key')
sqlite3 / better-sqlite3 本地数据库 db.prepare('SELECT * FROM notes').all()
axios / node-fetch 网络请求 axios.post(url, data)
node-gyp 原生模块编译 node-gyp rebuild

配置文件模板与说明

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

说明:

字段 含义
name / version / description 应用名称、版本号与描述信息
main 主进程入口文件(必须)
scripts 定义命令脚本,npm start 启动,npm run dist 打包
devDependencies 开发依赖(Electron、打包工具等)
build electron-builder 的配置项
appId 应用唯一 ID,用于签名和更新识别
productName 打包后显示的应用名称
directories.output 打包输出路径
files 指定要打包进应用的文件和目录
win/mac/linux 各平台独立打包配置(图标、目标格式)

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

说明:

配置项 说明
appId / productName 应用唯一标识与名称
directories.output 打包输出目录
files 打包文件列表(支持通配符)
win / mac / linux 不同系统的构建目标与图标配置
publish 自动更新时的发布源配置(如 GitHub Releases)

TypeScript tsconfig.json 模板与说明

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

说明:

选项 含义
target 编译目标 JavaScript 版本
module 模块系统,Electron 主进程一般使用 commonjs
outDir / rootDir 输出与源码目录
strict 启用严格类型检查
esModuleInterop 允许默认导入非 ES 模块
resolveJsonModule 支持导入 JSON 文件
skipLibCheck 跳过声明文件检查,加快编译速度