feat: 新增桌面应用支持
- 新增 desktop 应用入口,将后端与前端打包为单一可执行文件 - 集成系统托盘功能(getlantern/systray) - 支持单实例锁和端口冲突检测 - 启动时自动打开浏览器显示管理界面 - 新增 embedfs 模块嵌入静态资源 - 新增跨平台构建脚本(macOS/Windows/Linux) - 新增 macOS .app 打包脚本 - 统一 Makefile,移除 backend/Makefile - 更新 README 添加桌面应用使用说明
This commit is contained in:
93
README.md
93
README.md
@@ -7,7 +7,9 @@
|
||||
```
|
||||
nex/
|
||||
├── backend/ # Go 后端服务(分层架构)
|
||||
│ ├── cmd/server/ # 主程序入口
|
||||
│ ├── cmd/
|
||||
│ │ ├── server/ # CLI 主程序入口
|
||||
│ │ └── desktop/ # 桌面应用入口
|
||||
│ ├── internal/
|
||||
│ │ ├── handler/ # HTTP 处理器 + 中间件
|
||||
│ │ ├── service/ # 业务逻辑层
|
||||
@@ -32,6 +34,15 @@ nex/
|
||||
│ ├── e2e/ # Playwright E2E 测试
|
||||
│ └── package.json
|
||||
│
|
||||
├── assets/ # 应用资源
|
||||
│ ├── icon.png # 托盘图标
|
||||
│ ├── AppIcon.icns # macOS 应用图标
|
||||
│ └── icon.ico # Windows 应用图标
|
||||
│
|
||||
├── scripts/ # 构建脚本
|
||||
│ └── build/
|
||||
│ └── package-macos.sh # macOS .app 打包脚本
|
||||
│
|
||||
└── README.md # 本文件
|
||||
```
|
||||
|
||||
@@ -72,7 +83,46 @@ nex/
|
||||
|
||||
## 快速开始
|
||||
|
||||
### 后端
|
||||
### 桌面应用(推荐)
|
||||
|
||||
**构建桌面应用**:
|
||||
|
||||
```bash
|
||||
# 当前平台
|
||||
make desktop
|
||||
|
||||
# macOS (arm64 + amd64)
|
||||
make desktop-darwin
|
||||
make package-macos # 打包为 .app
|
||||
|
||||
# Windows
|
||||
make desktop-windows
|
||||
|
||||
# Linux
|
||||
make desktop-linux
|
||||
```
|
||||
|
||||
**使用桌面应用**:
|
||||
- 双击启动应用(macOS: Nex.app,Windows: nex.exe,Linux: nex)
|
||||
- 系统托盘图标出现,浏览器自动打开管理界面
|
||||
- 点击托盘图标显示菜单,可打开管理界面或退出
|
||||
- 关闭浏览器后服务继续运行,可通过托盘重新打开
|
||||
|
||||
**注意事项**:
|
||||
- 桌面应用需要 CGO 支持
|
||||
- macOS: 自带 Xcode Command Line Tools
|
||||
- Linux: 自带 gcc,部分桌面环境需要 `libappindicator3-dev`
|
||||
- Windows: 需要 MinGW-w64 或在 Windows 环境构建
|
||||
|
||||
**Linux 桌面环境兼容性**:
|
||||
- GNOME: 需要 AppIndicator 扩展
|
||||
- KDE Plasma: 原生支持
|
||||
- Xfce: 需要 libappindicator
|
||||
- 其他支持 StatusNotifierItem 规范的环境
|
||||
|
||||
### CLI 模式
|
||||
|
||||
#### 后端
|
||||
|
||||
```bash
|
||||
cd backend
|
||||
@@ -161,41 +211,24 @@ log:
|
||||
|
||||
## 测试
|
||||
|
||||
### 后端测试
|
||||
|
||||
```bash
|
||||
cd backend
|
||||
make test # 运行所有测试
|
||||
make test-coverage # 生成覆盖率报告
|
||||
```
|
||||
|
||||
### 前端测试
|
||||
|
||||
```bash
|
||||
cd frontend
|
||||
bun run test # 单元测试 + 组件测试
|
||||
bun run test:watch # 监听模式
|
||||
bun run test:coverage # 生成覆盖率报告
|
||||
bun run test:e2e # E2E 测试
|
||||
make backend-test # 后端测试
|
||||
make backend-test-coverage # 后端覆盖率
|
||||
make frontend-test # 前端测试
|
||||
make frontend-test-e2e # 前端 E2E 测试
|
||||
```
|
||||
|
||||
## 开发
|
||||
|
||||
### 后端开发
|
||||
|
||||
```bash
|
||||
cd backend
|
||||
make build # 构建
|
||||
make lint # 代码检查
|
||||
make migrate-up # 数据库迁移
|
||||
```
|
||||
make backend-build # 构建后端
|
||||
make backend-run # 运行后端
|
||||
make backend-lint # 后端代码检查
|
||||
make backend-migrate-up # 数据库迁移
|
||||
|
||||
### 前端开发
|
||||
|
||||
```bash
|
||||
cd frontend
|
||||
bun run build # 构建生产版本
|
||||
bun run lint # 代码检查
|
||||
make frontend-build # 构建前端
|
||||
make frontend-dev # 前端开发模式
|
||||
make frontend-lint # 前端代码检查
|
||||
```
|
||||
|
||||
## 开发规范
|
||||
|
||||
Reference in New Issue
Block a user