news 2026/4/3 5:50:30

Electron 快速入门教程

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Electron 快速入门教程

Electron 是一个基于Node.jsChromium的跨平台桌面应用开发框架,你可以用 HTML、CSS、JavaScript 构建 Windows、macOS、Linux 三端一致的桌面应用,比如 VS Code、Figma 都是基于 Electron 开发的。

本教程会带你从环境搭建打包第一个应用,快速上手 Electron 开发。

一、前置条件

  1. 安装 Node.js
    确保你的电脑已安装 Node.js(推荐 LTS 版本),可以通过以下命令验证:

    node-vnpm-v

    下载地址:Node.js 官网

  2. 基础技术储备
    熟悉 HTML、CSS、JavaScript 基础语法,了解 Node.js 基本使用(如require、模块)。

二、步骤 1:创建项目并初始化

  1. 新建项目文件夹

    mkdirmy-first-electron-appcdmy-first-electron-app
  2. 初始化 npm 项目
    执行命令并根据提示填写信息(也可以直接npm init -y快速生成):

    npminit

    生成的package.json需要确保两个关键配置:

    • main:入口文件(默认index.js,后续会编写)
    • scripts:添加启动脚本

三、步骤 2:安装 Electron

在项目根目录执行安装命令(推荐安装到开发依赖):

npminstallelectron --save-dev

四、步骤 3:编写核心代码

Electron 应用分为主进程渲染进程,我们需要编写 3 个核心文件:main.js(主进程)、index.html(渲染进程页面)、package.json(配置脚本)。

1. 配置 package.json

修改package.json,添加启动脚本start

{"name":"my-first-electron-app","version":"1.0.0","description":"A simple Electron app","main":"main.js","scripts":{"start":"electron ."},"devDependencies":{"electron":"^28.0.0"}}

2. 编写主进程文件:main.js

主进程负责管理窗口生命周期、系统事件、IPC 通信等,是 Electron 应用的入口。

// 引入 Electron 的核心模块const{app,BrowserWindow}=require('electron');constpath=require('path');// 定义创建窗口的函数functioncreateWindow(){// 创建一个浏览器窗口constmainWindow=newBrowserWindow({width:800,// 窗口宽度height:600,// 窗口高度webPreferences:{// 预加载脚本路径(可选,用于安全暴露 API)preload:path.join(__dirname,'preload.js')}});// 加载本地的 index.html 文件mainWindow.loadFile('index.html');// 开发环境下,打开开发者工具(可选)// mainWindow.webContents.openDevTools();}// Electron 初始化完成后,创建窗口app.whenReady().then(()=>{createWindow();// macOS 特有:当所有窗口关闭后,重新打开窗口app.on('activate',()=>{if(BrowserWindow.getAllWindows().length===0){createWindow();}});});// 所有窗口关闭后,退出应用(Windows & Linux)app.on('window-all-closed',()=>{if(process.platform!=='darwin'){app.quit();}});

3. 编写预加载脚本(可选):preload.js

预加载脚本运行在渲染进程中,但拥有 Node.js 权限,用于安全地向渲染进程暴露 API,避免直接在渲染进程中操作 Node.js 带来的安全风险。

const{contextBridge}=require('electron');// 向渲染进程暴露全局 APIcontextBridge.exposeInMainWorld('electronAPI',{appVersion:()=>process.versions.electron});

4. 编写渲染进程页面:index.html

这是应用的界面,和普通网页完全一致,你可以用任何前端框架(Vue/React)替换。

<!DOCTYPEhtml><html><head><metacharset="UTF-8"><title>我的第一个 Electron 应用</title><style>body{text-align:center;padding:50px;font-family:Arial,sans-serif;}</style></head><body><h1>Hello Electron!</h1><p>当前 Electron 版本:<spanid="version"></span></p><script>// 调用预加载脚本暴露的 APIdocument.getElementById('version').innerText=window.electronAPI.appVersion();</script></body></html>

五、步骤 4:运行应用

在项目根目录执行启动命令:

npmstart

此时会弹出一个 800×600 的窗口,显示Hello Electron!和当前 Electron 版本,说明应用运行成功。

六、步骤 5:打包应用(生成可执行文件)

开发完成后,需要将应用打包成对应平台的可执行文件(如.exe.dmg.deb),推荐使用electron-forge工具。

  1. 安装 electron-forge

    npminstall--save-dev @electron-forge/cli npx electron-forgeimport
  2. 打包应用

    npmrunmake

    打包完成后,会在项目根目录生成out文件夹,里面包含对应平台的可执行文件:

    • Windows:out/my-first-electron-app-win32-x64下的.exe文件
    • macOS:out下的.dmg文件
    • Linux:out下的.deb.snap文件

七、核心概念梳理

进程类型作用运行环境
主进程管理窗口、系统事件、IPC 通信、权限操作(文件读写、网络请求)Node.js 环境
渲染进程负责应用界面渲染,和普通网页一致Chromium 环境
预加载脚本作为主进程和渲染进程的桥梁,安全暴露 API两者之间

八、进阶方向

  1. IPC 通信:使用ipcMain.handle+ipcRenderer.invoke实现主进程和渲染进程的数据交互(如读取本地文件)。
  2. 集成前端框架:将index.html替换为 Vue/React 项目的打包产物,开发更复杂的界面。
  3. 添加系统功能:集成托盘图标、菜单、快捷键、文件拖拽等 Electron 特有能力。
  4. 性能优化:关闭不必要的开发者工具、优化渲染进程、使用内存缓存。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/6 9:20:05

国际化(i18n)UI 自动化验证方案

随着全球化应用普及&#xff0c;国际化&#xff08;i18n&#xff09;UI 测试成为软件质量保障的关键环节。本文针对软件测试从业者&#xff0c;系统阐述自动化验证方案的设计与实施&#xff0c;覆盖资源文件管理、Locale 动态适配、前端元素校验等核心模块&#xff0c;旨在提升…

作者头像 李华
网站建设 2026/3/26 8:37:34

Directory Opus(文件管理器专业版) 安装版 绿色版

Directory Opus 不仅仅是一个简单的文件管理器&#xff0c;它还能让你的电脑完全为你掌控&#xff0c;凭借灵活的用户界面和超乎想象的可配置性&#xff0c;你可以对 Opus 进行量身定制&#xff0c;以简化工作流程。 软件特点 双窗格、双树形、多标签。 对文件夹进行过滤、排序…

作者头像 李华
网站建设 2026/4/1 2:26:30

Gitee DevOps平台:本土化创新如何重塑中国企业的研发效能格局

Gitee DevOps平台&#xff1a;本土化创新如何重塑中国企业的研发效能格局 在全球数字化转型浪潮中&#xff0c;中国企业的技术选型正在经历一场静悄悄的革命。当国际主流DevOps工具仍在全球市场占据主导地位之时&#xff0c;以Gitee为代表的本土化DevOps平台正凭借其独特的&quo…

作者头像 李华
网站建设 2026/3/30 5:36:40

Docker核心技术:深入理解网络模式 (Bridge, Host, None, Container)

Docker 核心技术&#xff1a;深入理解网络模式 (Bridge, Host, None, Container) Docker 的网络模式是其核心功能之一&#xff0c;直接决定了容器如何与宿主机、其他容器、外部网络通信。Docker 提供了四种内置网络模式&#xff08;基于 Linux 网络命名空间和 veth pair 等内核…

作者头像 李华
网站建设 2026/3/27 11:06:27

【Hot100|13-LeetCode 189. 轮转数组】

LeetCode 189. 轮转数组 - 三次反转原地算法详解 一、问题理解 问题描述 给定一个整数数组 nums&#xff0c;将数组中的元素向右轮转 k 个位置&#xff0c;其中 k 是非负数。要求原地修改数组&#xff0c;不使用额外的数组空间。 示例 text 输入: nums [1,2,3,4,5,6,7],…

作者头像 李华