Electron 入门实例

Electron 入门实例:创建第一个“Hello World”应用(2025 年 12 月最新)

这是一个最经典的 Electron 入门示例,按照官方 Quick Start 指南一步步构建一个简单的桌面窗口应用。当前 Electron 最新稳定版本为 39.2.7(基于 Chromium 142.x)。

步骤 1:准备环境

  • 安装 Node.js(推荐 22.x LTS 版)。
  • 创建项目文件夹:
  mkdir electron-hello-world
  cd electron-hello-world
  npm init -y

步骤 2:安装 Electron

npm install electron@latest --save-dev

(会安装 39.2.7 或最新补丁版)

步骤 3:配置 package.json

修改 package.json(添加 main 和 start 脚本):

{
  "name": "electron-hello-world",
  "version": "1.0.0",
  "main": "main.js",
  "scripts": {
    "start": "electron ."
  },
  "devDependencies": {
    "electron": "^39.2.7"
  }
}

步骤 4:创建主进程文件 main.js

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

function createWindow () {
  const win = new BrowserWindow({
    width: 800,
    height: 600,
    webPreferences: {
      preload: `${__dirname}/preload.js`,  // 推荐使用 preload 增强安全性
      contextIsolation: true,              // 默认启用,推荐保持
      nodeIntegration: false               // 默认禁用,推荐保持
    }
  });

  win.loadFile('index.html');
}

app.whenReady().then(() => {
  createWindow();

  app.on('activate', () => {
    if (BrowserWindow.getAllWindows().length === 0) createWindow();
  });
});

app.on('window-all-closed', () => {
  if (process.platform !== 'darwin') app.quit();
});

步骤 5:创建预加载脚本 preload.js(安全通信桥接)

const { contextBridge, ipcRenderer } = require('electron');

contextBridge.exposeInMainWorld('electronAPI', {
  getVersions: () => ipcRenderer.invoke('get-versions')
});

步骤 6:修改 main.js 支持 IPC(获取版本信息,可选增强)

在 main.js 开头添加:

const { ipcMain } = require('electron');

然后在 createWindow 前添加:

ipcMain.handle('get-versions', () => process.versions);

步骤 7:创建渲染页面 index.html

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>Hello Electron!</title>
</head>
<body>
  <h1>Hello World!</h1>
  <p>我们正在使用:</p>
  <ul>
    <li>Node.js: <span id="node-version">-</span></li>
    <li>Chromium: <span id="chrome-version">-</span></li>
    <li>Electron: <span id="electron-version">-</span></li>
  </ul>

  <script>
    window.electronAPI.getVersions().then(versions => {
      document.getElementById('node-version').innerText = versions.node;
      document.getElementById('chrome-version').innerText = versions.chrome;
      document.getElementById('electron-version').innerText = versions.electron;
    });
  </script>
</body>
</html>

步骤 8:运行应用

npm start

成功运行后,你会看到类似下面的窗口:

架构提醒(可视化)

这个示例体现了 Electron 的主进程 + 渲染进程架构:

安全注意(2025 年推荐实践)

  • 启用 contextIsolation: truenodeIntegration: false
  • 使用 preload.js + contextBridge 暴露有限 API,避免渲染进程直接访问 Node.js。

完成这个实例后,你就掌握了 Electron 的基本开发流程!接下来可以尝试添加菜单、托盘、打包等功能。有问题或想扩展(如集成 React/Vue),随时问我~

文章已创建 3383

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

相关文章

开始在上面输入您的搜索词,然后按回车进行搜索。按ESC取消。

返回顶部