JS 框架 词条目录
前端Wiki/词条/Electron 桌面应用

Electron 桌面应用

定义把 Chromium 渲染层与 Node.js 运行时打包进一个壳里,让前端代码直接变成跨平台桌面软件

Electron 的结构是主进程加渲染进程:主进程用 Node 能力创建窗口、访问文件系统、调原生菜单;渲染进程就是普通的浏览器页面,跑你的前端代码。两者通过 IPC 通信。VS Code、飞书、Discord 桌面端都是它做的——用 Web 技术写出桌面软件,团队复用现有前端技能。

最大的痛是体积与内存:每个应用都内嵌一个完整 Chromium,安装包动辄百兆,内存占用也偏高。安全是另一道红线:渲染进程若能直接用 Node 的全部能力,页面里的恶意脚本就能读写硬盘,所以必须开启 contextIsolation、禁用 nodeIntegration、经 preload 严格暴露接口。

JavaScript
// 主进程(main.js):用 Node 创建窗口
var electron = require('electron');
var app = electron.app, BrowserWindow = electron.BrowserWindow;
var win;
app.whenReady().then(function () {
  win = new BrowserWindow({
    webPreferences: { contextIsolation: true, nodeIntegration: false }
  });
  win.loadFile('index.html');
});

// preload.js:主进程与渲染进程之间的安全桥(白名单暴露)
var { contextBridge, ipcRenderer } = require('electron');
contextBridge.exposeInMainWorld('api', {
  saveFile: function (name, text) { ipcRenderer.send('save-file', name, text); }
});

// 渲染进程(页面里的普通 JS)
document.getElementById('btn').addEventListener('click', function () {
  window.api.saveFile('note.txt', '来自 Electron 的笔记');
});
⚠ 常见误区
🔗 相关词条前端脚手架
← 返回来源章节脚手架