wulawula
v1.0.2
Published
An Electron application with Vue and TypeScript
Downloads
6
Readme
electron-template 项目文档 这是一个使用Electron、Vue 3和TypeScript构建的桌面应用程序模板。该项目提供了一个完整的开发框架,包括主进程、渲染进程、IPC通信、持久化存储等功能。
项目结构概览
项目采用了典型的Electron应用结构,分为主进程(main)、预加载脚本(preload)和渲染进程(renderer)三个主要部分。
主要文件说明
主进程 (Main Process)
src/main/index.ts- 主进程的入口文件
- 初始化主窗口
- 设置应用的事件监听器
- 初始化IPC通信
src/main/windows/main.ts- 定义和创建主窗口
- 设置窗口属性和事件监听器
src/main/ipc.ts- 初始化IPC通信
- 定义主进程侧的IPC事件处理器
src/main/logger.ts- 配置和初始化日志系统
- 提供日志记录功能
src/main/electronStore.ts- 配置和初始化electron-store
- 提供数据持久化存储的方法
预加载脚本 (Preload)
src/preload/index.ts- 预加载脚本的入口文件
- 暴露安全的API给渲染进程
src/preload/logger.ts- 为渲染进程提供日志记录功能
src/preload/store.ts- 为渲染进程提供数据存储的API
渲染进程 (Renderer Process)
src/renderer/src/main.ts- 渲染进程的入口文件
- 初始化Vue应用
- 加载路由和状态管理
src/renderer/src/App.vue- Vue应用的根组件
src/renderer/src/router/index.ts- 定义应用的路由配置
src/renderer/src/components/- 包含可复用的Vue组件
- 例如
Versions.vue显示应用的版本信息 ElectronStoreDemo.vue演示了如何使用electron-store
src/renderer/src/plugins/core/console.ts- 自定义的日志系统,对
window.electronLog进行了封装
- 自定义的日志系统,对
配置文件
electron.vite.config.ts- Electron-vite的配置文件
- 定义了主进程、预加载脚本和渲染进程的构建配置
electron-builder.yml- Electron-builder的配置文件
- 定义了应用打包和分发的配置
vite.config.ts- Vite的配置文件,主要用于渲染进程的开发服务器配置
tsconfig.json,tsconfig.node.json,tsconfig.web.json- TypeScript的配置文件,分别用于整个项目、Node.js环境和Web环境
.eslintrc.cjs,.prettierignore- ESLint和Prettier的配置文件,用于代码格式化和风格检查
关键功能说明
窗口管理:
- 主窗口的创建和管理在
src/main/windows/main.ts中实现 - 支持无边框窗口和自定义标题栏
- 主窗口的创建和管理在
IPC通信:
- 在
src/main/ipc.ts中初始化和处理IPC事件 - 通过预加载脚本 (
src/preload/index.ts) 暴露安全的API给渲染进程
- 在
数据持久化:
- 使用 electron-store 实现,相关配置在
src/main/electronStore.ts - 在渲染进程中通过
window.storeAPI使用
- 使用 electron-store 实现,相关配置在
日志系统:
- 使用 electron-log 实现,在
src/main/logger.ts中配置 - 渲染进程通过
src/renderer/src/plugins/core/console.ts中的封装使用
- 使用 electron-log 实现,在
自动更新:
- 在
src/config/communication.ts中定义了相关的IPC事件类型 - 具体实现需要在主进程中添加
- 在
开发指南
启动开发服务器:
npm run dev构建应用:
npm run build添加新的IPC通信:
- 在
src/config/communication.ts中添加新的消息类型 - 在
src/main/ipc.ts中实现主进程侧的处理逻辑 - 在预加载脚本中暴露相应的API
- 在渲染进程中使用
window.electron或自定义的API调用
- 在
添加新的路由:
- 在
src/renderer/src/router/index.ts中添加新的路由配置 - 创建对应的Vue组件
- 在
使用持久化存储:
- 在渲染进程中使用
window.storeAPI进行数据的存取
- 在渲染进程中使用
