V-IM-PC 开发文档

1,619 阅读4分钟

项目开发文档

一、项目简介

本项目为基于 Electron + Vue3 + TypeScript 的桌面即时通讯应用,采用前后端分离架构,前端界面使用 Vue3 及 Element Plus 组件库,后端通过 Electron 主进程与系统进行交互,支持多平台构建和运行。


二、项目结构

项目目录结构如下:

text

Apply

.

├── build/                # 构建相关脚本和配置

├── out/                  # 构建输出目录

├── resources/            # 应用资源文件(如图标等)

├── src/                  # 源码目录

│   ├── main/             # Electron 主进程代码

│   ├── preload/          # 预加载脚本

│   └── renderer/         # 渲染进程(前端)代码

├── package.json          # 项目依赖与脚本

├── electron-builder.yml  # Electron 打包配置

├── tsconfig*.json        # TypeScript 配置

└── ...                   # 其他配置文件

1. 主进程(src/main)

  • 负责应用生命周期管理、窗口创建、系统托盘、通知、与操作系统的交互等。
  • 入口文件为 index.ts,集中管理窗口配置、IPC 通信、托盘图标、系统事件监听等。
  • 通过 electron 和 @electron-toolkit/utils 提供的 API 实现跨平台兼容。

2. 预加载脚本(src/preload)

  • 主要用于在渲染进程和主进程之间安全地暴露部分 Node 能力。
  • 入口为 index.ts,可根据需要扩展。

3. 渲染进程(src/renderer)

  • 前端界面,基于 Vue3 + TypeScript 实现,采用模块化结构,便于维护和扩展。
  • 主要目录说明:
  • src/renderer/index.html:前端入口 HTML。
  • src/renderer/src/main.ts:前端应用入口,初始化 Vue 应用、全局插件、样式等。
  • src/renderer/src/App.vue:根组件,承载路由视图。
  • api/:接口请求封装,统一管理与后端的 HTTP/WebSocket 通信。
  • components/:可复用的 Vue 组件。
  • views/:页面级组件,按业务模块划分(如 Home、Login、Register 等)。
  • store/:状态管理,基于 Vuex/Pinia(具体实现需结合实际代码)管理全局状态。
  • router/:前端路由配置,管理页面跳转与权限控制。
  • hooks/:自定义 hooks,封装常用逻辑和事件处理。
  • utils/:工具函数,提供常用数据处理、格式化等功能。
  • config/:配置文件,集中管理应用配置项。
  • enum/:枚举类型,统一管理常量。
  • message/:消息相关类型和结构体定义。
  • assets/:静态资源,如样式、图片、字体、表情等。
  • mode/:数据模型定义,描述业务对象结构。

三、设计方案

1. Electron 主进程设计

  • 窗口管理:通过 BrowserWindow 创建主窗口,支持无边框、最小化、最大化、隐藏等操作。
  • 系统托盘:集成系统托盘图标,支持闪烁提醒、菜单操作等。
  • IPC 通信:主进程与渲染进程通过 ipcMain 和 ipcRenderer 实现事件和数据的双向通信。
  • 系统事件监听:监听系统休眠、唤醒、窗口焦点变化等事件,及时通知前端处理。
  • 安全性:开发环境下关闭证书校验,生产环境开启安全策略。

2. 渲染进程设计

  • 模块化结构:前端代码按功能模块划分,便于维护和扩展。
  • 状态管理:通过 store 统一管理用户、消息、会话、系统配置等全局状态。
  • 路由管理:采用前端路由实现页面切换和权限控制。
  • 组件复用:将常用 UI 和业务逻辑封装为组件,提高开发效率。
  • 接口统一管理:所有后端接口请求集中管理,便于维护和切换。
  • 自定义 hooks:将复杂或通用逻辑抽离为 hooks,提高代码复用性。
  • 多语言与主题:支持 Element Plus 组件库的多语言和自定义主题。

3. 配置与构建

  • 多平台支持:通过 Electron Builder 配置,支持 Windows、macOS、Linux 多平台打包。
  • 开发体验:集成 ESLint、Prettier、Volar 等工具,保证代码规范和开发效率。
  • 类型安全:全项目采用 TypeScript,提升代码健壮性和可维护性。

四、打包

  • npm run build #打包web

  • npm run build:win #打包exe

  • npm run build:linux #打包linux

  • npm run build:mac #打包mac

tips:需要什么包要在对应的操作系统上面打包,例如不要在win下打包linux

五、总结

本项目采用 Electron + Vue3 + TypeScript 技术栈,结构清晰、模块划分合理,具备良好的可扩展性和可维护性。主进程负责与系统交互,渲染进程专注于前端业务和界面,二者通过 IPC 实现高效通信。前端采用现代化工程化方案,支持多端构建和高效开发。如需了解具体模块实现细节,可进一步查阅各目录下的源码及注释。