当前位置: 首页 > news >正文

Electron 从零开始:构建你的第一个桌面应用

🖥️ Electron 从零开始:构建你的第一个桌面应用

Electron 是一个可以使用 HTML、CSS 和 JavaScript 构建跨平台桌面应用的框架。它将 Chromium 和 Node.js 融合到一个环境中,使 Web 开发者也能轻松开发原生桌面应用。


🚀 什么是 Electron?

Electron 是由 GitHub 开发的开源框架,底层基于:

  • Chromium:负责 UI 渲染
  • Node.js:处理文件系统、后端逻辑

广受欢迎的桌面应用如 VS Code、Slack、Postman 都是基于 Electron 构建的。


🧰 开发环境准备

  1. 安装 Node.js(建议版本 ≥ 16)
  2. 安装 npm(随 Node.js 自带)

🛠️ 创建你的第一个 Electron 应用

1. 初始化项目

mkdir my-electron-app
cd my-electron-app
npm init -y

2. 安装 Electron

npm install electron --save-dev

📁 项目结构

my-electron-app/
├── package.json
├── main.js          // 主进程入口
├── index.html       // 应用页面
└── preload.js       // 可选:渲染进程预加载脚本

🧠 主进程代码(main.js)

const { app, BrowserWindow } = require('electron');
const path = require('path');function createWindow() {const win = new BrowserWindow({width: 800,height: 600,webPreferences: {preload: path.join(__dirname, 'preload.js') // 可选}});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();
});

🌐 页面内容(index.html)

<!DOCTYPE html>
<html><head><meta charset="UTF-8" /><title>Hello Electron</title></head><body><h1>Hello, Electron!</h1><p>这是你的第一个桌面应用。</p></body>
</html>

⚙️ 运行应用

package.json 中添加启动脚本:

"scripts": {"start": "electron ."
}

运行项目:

npm start

你将看到一个桌面窗口,显示着我们写的 HTML 页面。


✨ 进阶功能建议

功能简介
preload.js安全桥接 Node 与页面
ipcMain / ipcRenderer主进程与渲染进程通信
文件读写使用 Node.js API 操作文件系统
菜单栏自定义应用菜单栏
自动更新集成 Electron-updater
打包发布使用 Electron Forge 或 Electron Builder

✅ 示例:添加渲染进程与主进程通信

preload.js

const { contextBridge, ipcRenderer } = require('electron');contextBridge.exposeInMainWorld('myAPI', {sayHello: () => ipcRenderer.send('hello'),
});

index.html

<button onclick="window.myAPI.sayHello()">点击打招呼</button>

main.js 中监听

const { ipcMain } = require('electron');
ipcMain.on('hello', () => {console.log('收到来自渲染进程的问候!');
});

📦 打包发布

推荐使用 Electron Forge:

npx create-electron-app my-app --template=webpack

或使用 Electron Builder:

npm install electron-builder --save-dev

并在 package.json 中配置 build 字段。


🧾 总结

步骤操作
初始化项目npm init -y
安装 Electronnpm install electron --save-dev
创建主进程编写 main.js
创建页面编写 index.html
运行应用npm start
http://www.xdnf.cn/news/272863.html

相关文章:

  • Qt帮助文档框架
  • Qt .pro配置msvc相关命令(二)
  • GPU集群训练经验评估框架:运营经理经验分析篇
  • 修复笔记:SkyReels-V2 项目中的 torch.load 警告
  • 【PostgreSQL数据分析实战:从数据清洗到可视化全流程】4.2 数据类型转换(CAST函数/自定义函数)
  • Qwen2.5模型性能测评 - 速度指标
  • 【LeetCode Hot100】动态规划篇
  • 记录ruoyi-flowable-plus第一次运行流程报错
  • 编程速递-RAD Studio 12.3 Athens四月补丁:关注软件性能的开发者,安装此补丁十分必要
  • 【Linux】日志与策略模式、线程池
  • 《Vue3学习手记8》
  • 高等数学第三章---微分中值定理与导数的应用(3.4~3.5)
  • LeetCode 热题 100 994. 腐烂的橘子
  • CF1000E We Need More Bosses
  • 【转载】【翻译】图解智能体到智能体 (A2A) 协议
  • 冯诺依曼结构与哈佛架构深度解析
  • 【Linux系统】第二节—基础指令(2)
  • 13:图像处理—畸变矫正详解
  • 修复笔记:获取 torch._dynamo 的详细日志信息
  • 【数据结构】励志大厂版·初阶(复习+刷题)排序
  • 【程序+论文】大规模新能源并网下的火电机组深度调峰经济调度
  • TFQMR和BiCGStab方法比较
  • 缓存与数据库的高效读写流程解析
  • 8.1 Python+Docker+企业微信集成实战:自动化报告生成与CI/CD部署全攻略
  • php study 网站出现404 - Page Not Found 未找到
  • 去打印店怎么打印手机文件,网上打印平台怎么打印
  • C++负载均衡远程调用学习之Agent代理模块基础构建
  • 组合模式(Composite Pattern)
  • 探索正态分布:交互式实验带你体验统计之美
  • AI 编程日报 · 2025 年 5 月 04 日|GitHub Copilot Agent 模式发布,Ultralytics 优化训练效率