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

不用vue,只用html,即可简单实现electron项目

为你提供一个 最简单的 Electron 项目模板,包含完整的代码、配置和打包说明。即使你是小白,也能快速上手。

1. 项目结构

/your-project├── main.js          # Electron 主进程文件├── preload.js       # 安全通信脚本(可选)├── index.html       # 前端页面├── package.json     # 项目配置└── build/           # 打包配置目录(后文会生成)

2. 初始化项目

在空文件夹中打开终端,执行:

npm init -y
npm install --save-dev electron electron-builder

3. 核心文件代码

(1) main.js - 主进程
const { app, BrowserWindow } = require('electron')
const path = require('path')let mainWindowfunction createWindow() {// 创建浏览器窗口mainWindow = new BrowserWindow({width: 800,height: 600,webPreferences: {preload: path.join(__dirname, 'preload.js') // 安全通信脚本}})// 加载本地文件(生产环境)mainWindow.loadFile('index.html')// 开发时打开调试工具if (process.env.NODE_ENV === 'development') {mainWindow.webContents.openDevTools()}
}// Electron 初始化完成时触发
app.whenReady().then(createWindow)// 关闭所有窗口时退出应用(macOS 除外)
app.on('window-all-closed', () => {if (process.platform !== 'darwin') app.quit()
})// macOS 点击 Dock 图标重新打开窗口
app.on('activate', () => {if (BrowserWindow.getAllWindows().length === 0) createWindow()
})
(2) preload.js - 安全通信脚本
// 这里可以暴露安全的 API 给渲染进程
window.electronAPI = {doThing: () => require('electron').ipcRenderer.send('do-a-thing')
}
(3) index.html - 前端页面
<!DOCTYPE html>
<html>
<head><meta charset="UTF-8"><title>我的 Electron 应用</title>
</head>
<body><h1>Hello Electron!</h1><button id="btn">点击测试</button><script>document.getElementById('btn').addEventListener('click', () => {// 调用预加载脚本暴露的方法window.electronAPI?.doThing()})</script>
</body>
</html>

4. 配置 package.json

{"name": "my-electron-app","version": "1.0.0","main": "main.js","scripts": {"start": "electron .","pack": "electron-builder --dir","dist": "electron-builder"},"build": {"appId": "com.example.myapp","productName": "我的应用","directories": {"output": "dist"  // 打包输出目录},"win": {"target": "nsis", // Windows 安装包"icon": "build/icon.ico"},"mac": {"target": "dmg","icon": "build/icon.png"},"linux": {"target": "AppImage"}},"devDependencies": {"electron": "^28.0.0","electron-builder": "^24.0.0"}
}

5. 添加应用图标

在 build/ 目录下放置:

  • icon.ico(Windows)

  • icon.png(macOS/Linux)

推荐尺寸:至少 256x256 像素

6. 运行与打包命令

测试打包(不生成安装包)

npm run pack

生成安装包
npm run dist

打包结果会输出到 dist/ 目录:

  • Windows: .exe 安装包

  • macOS: .dmg 镜像

  • Linux: .AppImage


7. 注意事项

  1. 安全建议

    • 生产环境不要禁用 contextIsolation

    • 所有 Node.js API 调用通过 preload.js 中转

  2. 调试技巧

    • 主进程调试:在 VSCode 中添加调试配置

    • 渲染进程调试:右键页面选择 "Inspect Element"

  3. 跨平台问题

    • Windows 打包需在 Windows 系统进行

    • macOS 打包需要证书签名

http://www.lqws.cn/news/517771.html

相关文章:

  • 鸿蒙OpenHarmony[Disassembler反汇编工具]ArkTS运编译工具链
  • IntelliJ IDEA 社区版安装终极教程(2025 最新图文详解)
  • 微信小程序中scss、ts、wxml
  • React19源码系列之 API (react)
  • 惠普HP Laser MFP 116w 打印机信息
  • 深度解析Lucene IndexWriter 性能优化
  • 银河麒麟高级服务器操作系统(全架构)OpenGauss 数据库部署手册
  • Fisco Bcos学习 - 控制台搭建和基本使用
  • SpringBoot中5种拦截器使用场景
  • Odoo OWL 前端开发:ORM 与 RPC 服务的选择
  • HarmonyOS 5分布式数据库有哪些性能指标?
  • GPT-5企业级应用落地指南:70个工业场景实战部署全景(2025)
  • 贪心算法理论与实践总结
  • 《中国电信运营商骨干网:历史、现状与未来演进》系列 第五篇:新玩家入局——中国广电CBNNET如何构建全国一张网?
  • 鸿蒙系统(HarmonyOS)经典红色风格登录页布局
  • MySQL之视图深度解析
  • Eigen 库EIGEN_MAKE_ALIGNED_OPERATOR_NEW详解和实战示例
  • 数据结构?AVL树!!!
  • 【树的概念及其堆的实现】
  • 复用对象Aspose.Words 中 DocumentBuilder 的状态管理解析
  • Encoder-only PLM RoBERTa ALBERT (BERT的变体)
  • HuggingFace下载的模型缓存到了C盘,如何安全迁移到其他盘
  • sql 多表联查返回不为空的字段 COALESCE
  • 11 MySQL 如何优化数据查询方案?
  • 入门级STM32F103C8T6无人机遥控(原理图)
  • 打造灵活强大的PDF解析管道:从文本提取到智能分块的全流程实战
  • Systemd服务配置:开启自启Jar应用全指南
  • 【请关注】实操mongodb集群部署
  • 教育培训教学通用PPT模版
  • 【图论题典】Swift 解 LeetCode 最小高度树:中心剥离法详解