news 2026/5/9 6:09:12

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/5/7 8:29:32

触觉传感器如何布局最有效?一项关于抓取学习效率的仿真对比研究

在机器人领域&#xff0c;尤其是灵巧手和假肢设计中&#xff0c;触觉传感正变得越来越重要。它能提供直接的接触信息&#xff0c;如接触事件、滑移检测甚至纹理识别&#xff0c;从而显著提升抓取的稳定性。然而&#xff0c;目前的研究在触觉传感器的布局上可谓“百花齐放”&…

作者头像 李华
网站建设 2026/5/5 5:56:41

强烈安利2026 TOP10 AI论文写作软件:本科生毕业论文必备神器

强烈安利2026 TOP10 AI论文写作软件&#xff1a;本科生毕业论文必备神器 2026年AI论文写作工具测评&#xff1a;为何值得一看&#xff1f; 随着人工智能技术的不断进步&#xff0c;AI写作工具在学术领域的应用越来越广泛。对于本科生而言&#xff0c;撰写毕业论文不仅是一项繁重…

作者头像 李华
网站建设 2026/5/8 20:02:00

基于机器学习的商品推荐系统[python]-计算机毕业设计源码+LW文档

摘要&#xff1a;随着电子商务的迅猛发展&#xff0c;商品数量和种类急剧增加&#xff0c;用户在海量商品中快速找到符合自身需求的商品变得愈发困难。基于机器学习的商品推荐系统能够有效解决这一问题&#xff0c;通过分析用户的历史行为数据、个人偏好等信息&#xff0c;为用…

作者头像 李华