# Electron_vue3
**Repository Path**: NativeBase/electron_vue3
## Basic Information
- **Project Name**: Electron_vue3
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2025-08-19
- **Last Updated**: 2025-08-19
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 🚀 Vite + Electron + Vue3 桌面应用开发模板
🍀 现代化的跨平台桌面应用开发解决方案
基于最新技术栈构建的 Electron + Vue3 开发模板,提供完整的开发、构建、打包工作流
## ✨ 特性
- 🎯 **现代化技术栈** - Vue 3 + TypeScript + Vite + Electron
- ⚡ **极速开发体验** - Vite 热重载 + TypeScript 类型提示
- 🎨 **优雅的UI框架** - Tailwind CSS 原子化样式
- 🔧 **完整的工具链** - ESLint + Prettier + electron-builder
- 📦 **跨平台打包** - 支持 Windows、macOS 应用打包
- 🛡️ **安全的IPC通信** - contextBridge + preload 安全机制
- 🎪 **系统集成** - 系统托盘、原生通知、窗口管理
- 📱 **响应式设计** - 适配不同屏幕尺寸
## 🏗️ 技术架构
```
┌─────────────────┐ ┌─────────────────┐
│ 渲染进程 │ │ 主进程 │
│ │ │ │
│ Vue 3 + TS │◄──►│ Electron Main │
│ Tailwind CSS │ │ System APIs │
│ Vite HMR │ │ Window Mgmt │
└─────────────────┘ └─────────────────┘
▲ ▲
│ │
▼ ▼
┌─────────────────┐ ┌─────────────────┐
│ Preload Script │ │ System Tray │
│ IPC Bridge │ │ Notifications │
│ Context Bridge │ │ File System │
└─────────────────┘ └─────────────────┘
```
## 📋 环境要求
- **Node.js**: >= 18.0.0
- **npm/pnpm**: 最新版本
- **操作系统**: Windows 10+, macOS 10.15+, Linux
## 🚀 快速开始
### 1. 克隆项目
```bash
git clone
cd vite-electron-vue3-template
```
### 2. 安装依赖
```bash
# 使用 npm
npm install
# 或使用 pnpm (推荐)
pnpm install
```
### 3. 启动开发服务器
```bash
npm run dev
```
### 4. 构建生产版本
```bash
# 构建前端资源
npm run build
# 打包 Windows 应用
npm run win64
# 打包 macOS 应用
npm run mac
```
## 📁 项目结构
```
vite-electron-vue3-template/
├── src/ # Vue3 前端源码
│ ├── App.vue # 主应用组件
│ ├── main.ts # Vue应用入口
│ ├── styles/ # 样式文件
│ └── assets/ # 静态资源
├── src-electron/ # Electron 主进程源码
│ ├── main.ts # Electron主进程入口
│ ├── tray.ts # 系统托盘功能
│ └── utils.ts # 工具函数
├── public/ # 静态资源
│ ├── favicon.ico # 应用图标 (Windows/Linux)
│ ├── favicon.png # 应用图标 (macOS 系统托盘)
│ └── preload.mjs # 预加载脚本
├── app/ # Electron编译输出
├── dist/ # 前端构建输出
├── build/ # 应用打包输出
├── docs/ # 项目文档
├── vite.config.ts # Vite配置
├── electron-builder.yml # 打包配置
└── package.json # 项目配置
```
## 🎨 图标配置
### 图标文件要求
本项目支持多平台图标格式,确保在不同操作系统上的最佳显示效果:
| 平台 | 格式 | 文件名 | 用途 | 建议尺寸 |
|------|------|--------|------|----------|
| **Windows/Linux** | ICO | `favicon.ico` | 窗口图标、系统托盘 | 256x256 |
| **macOS** | PNG | `favicon.png` | 系统托盘 | 16x16, 32x32 |
| **通用** | ICO | `favicon.ico` | 窗口图标、通知 | 256x256 |
### 图标放置位置
```
public/
├── favicon.ico # 主图标文件 (必需)
└── favicon.png # macOS 系统托盘图标 (推荐)
```
### 自动图标格式选择
应用会根据运行平台自动选择合适的图标格式:
```typescript
// 系统托盘图标选择逻辑
const iconExtension = process.platform === 'darwin' ? 'png' : 'ico'
const iconPath = `public/favicon.${iconExtension}`
```
**平台特性**:
- **macOS**: 自动使用 PNG 格式,提供更好的系统托盘显示效果
- **Windows/Linux**: 使用 ICO 格式,保持传统兼容性
### 图标生成工具
如果你只有一种格式的图标,可以使用以下命令转换:
```bash
# 将 ICO 转换为 PNG (macOS)
sips -s format png public/favicon.ico --out public/favicon.png
# 将 PNG 转换为 ICO (需要 ImageMagick)
convert public/favicon.png public/favicon.ico
```
## 🛠️ 开发指南
### 核心概念
#### 1. 双进程架构
- **主进程**: 管理应用生命周期、创建窗口、处理系统事件
- **渲染进程**: 运行 Vue3 应用,处理用户界面
#### 2. IPC 通信
```typescript
// 渲染进程发送消息
window.electronAPI.send('hello', '消息内容')
// 主进程监听消息
ipcMain.on('hello', (event, args) => {
console.log('收到消息:', args)
})
```
#### 3. 系统集成
- 系统托盘图标和右键菜单
- 原生系统通知
- 窗口状态管理
### 开发工作流
1. **前端开发**: 在 `src/` 目录下开发 Vue3 组件
2. **主进程开发**: 在 `src-electron/` 目录下开发 Electron 功能
3. **样式开发**: 使用 Tailwind CSS 进行样式设计
4. **调试测试**: 使用开发者工具进行调试
5. **构建打包**: 使用 electron-builder 打包应用
## 📦 构建与部署
### 开发环境
```bash
npm run dev # 启动开发服务器
```
### 生产构建
```bash
npm run build # 构建前端资源
npm run lint # 代码检查
```
### 应用打包
```bash
npm run win64 # Windows 64位
npm run win32 # Windows 32位
npm run mac # macOS
```
### 打包配置
打包配置位于 `electron-builder.yml`,支持自定义:
- 应用图标和名称
- 安装包类型
- 代码签名
- 自动更新
## 🔧 配置说明
### Vite 配置
- **开发服务器**: localhost:3000
- **构建优化**: 代码分割、压缩、Tree Shaking
- **TypeScript**: 完整类型检查支持
### Electron 配置
- **安全设置**: 禁用 node 集成,启用上下文隔离
- **预加载脚本**: 安全的 IPC 通信桥梁
- **窗口设置**: 自定义窗口大小、图标、菜单
### Tailwind CSS
- **原子化样式**: 快速构建现代化界面
- **响应式设计**: 支持多种屏幕尺寸
- **自定义主题**: 可扩展的设计系统
## 🤝 贡献指南
1. Fork 本仓库
2. 创建特性分支 (`git checkout -b feature/AmazingFeature`)
3. 提交更改 (`git commit -m 'Add some AmazingFeature'`)
4. 推送到分支 (`git push origin feature/AmazingFeature`)
5. 打开 Pull Request
## 📄 许可证
本项目采用 MIT 许可证 - 查看 [LICENSE](LICENSE) 文件了解详情
## 🙏 致谢
- [Vue.js](https://vuejs.org/) - 渐进式 JavaScript 框架
- [Electron](https://electronjs.org/) - 跨平台桌面应用框架
- [Vite](https://vitejs.dev/) - 下一代前端构建工具
- [Tailwind CSS](https://tailwindcss.com/) - 实用优先的 CSS 框架
## 🔧 故障排除
### 常见问题
#### 1. 图标加载失败
**问题**: 控制台显示 "Failed to load image from path" 错误
**解决方案**:
```bash
# 检查图标文件是否存在
ls -la public/favicon.ico public/favicon.png
# 如果缺少 PNG 格式图标,转换现有 ICO 文件
sips -s format png public/favicon.ico --out public/favicon.png
# 重新构建应用
npm run build
npm run dev
```
#### 2. 系统托盘不显示 (macOS)
**问题**: macOS 系统托盘图标不显示或显示异常
**解决方案**:
- 确保 `public/favicon.png` 文件存在
- 检查 PNG 文件格式是否正确
- 建议使用 16x16 或 32x32 像素的 PNG 图标
#### 3. 应用启动失败
**问题**: UnhandledPromiseRejectionWarning 错误
**解决方案**:
```bash
# 清理构建缓存
rm -rf app/ dist/ node_modules/.vite
# 重新安装依赖
npm install
# 重新构建
npm run build
```
#### 4. 开发环境热重载问题
**问题**: 修改代码后应用不自动重启
**解决方案**:
- 检查端口是否被占用
- 重启开发服务器
- 检查 Vite 配置是否正确
### 调试技巧
#### 启用详细日志
在开发环境中,应用会输出详细的调试信息:
```bash
# 启动开发模式查看日志
npm run dev
# 查看图标加载状态
# 控制台会显示:
# "系统托盘图标加载成功: /path/to/favicon.png"
# "窗口图标加载成功: /path/to/favicon.ico"
```
#### 检查文件权限
```bash
# 确保图标文件有正确的读取权限
chmod 644 public/favicon.ico public/favicon.png
```
### 获取帮助
如果遇到其他问题:
1. 查看 [项目文档](docs/) 获取详细信息
2. 搜索 [已知问题](../../issues)
3. 提交新的 [Issue](../../issues/new) 并提供:
- 操作系统版本
- Node.js 版本
- 错误日志
- 复现步骤
## 📞 支持
如果你觉得这个项目有帮助,请给它一个 ⭐️
有问题或建议?欢迎提交 [Issue](../../issues) 或 [Pull Request](../../pulls)
---