Skip to content

Commit 58a5890

Browse files
committed
docs: update feature docs to correctly reflect Vite + React architecture
- Update backlog.md with accurate architecture differences - Clarify that project uses Vite + React (not Next.js) - Add detailed comparison between Vite and Next.js - Document migration options and recommendations - Update F1.1 and F1.2 docs with correct technical details
1 parent df7982e commit 58a5890

File tree

3 files changed

+307
-117
lines changed

3 files changed

+307
-117
lines changed

docs/features/F1.1-init-tauri-react.md

Lines changed: 97 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,75 @@
11
# F1.1 初始化 Tauri v2 + React 桌面应用
22

3-
> 状态: ✅ 已完成 (有差异)
4-
> 原始需求: Tauri v2 + Next.js → 实际实现: Tauri v2 + React + Vite
3+
> 状态: ⚠️ 架构差异
4+
> 原始需求: Tauri v2 + **Next.js** → 实际实现: Tauri v2 + **React + Vite**
55
66
---
77

88
## 实现概览
99

10-
`apps/desktop/` 下创建了 Tauri v2 + React 桌面应用,使用 Vite 作为构建工具。
10+
`apps/desktop/` 下创建了 Tauri v2 + React 桌面应用,使用 **Vite** 作为构建工具。
11+
12+
⚠️ **注意**: 原始需求要求使用 **Next.js 15**,但实际实现使用了 **Vite + React**。这是一个架构偏差。
1113

1214
## 技术栈
1315

1416
| 技术 | 版本 | 说明 |
1517
|------|------|------|
1618
| Tauri | v2.x | 桌面应用框架 |
1719
| React | v19.x | UI 框架 |
18-
| Vite | v7.x | 构建工具 |
20+
| **Vite** | **v7.x** | **构建工具(非 Next.js)** |
1921
| TypeScript | v5.8 | 类型系统 |
2022
| Tailwind CSS | v3.4 | 样式框架 |
2123

24+
## 与原始需求的差异
25+
26+
### F1.1 原始需求
27+
28+
```markdown
29+
- [ ] Next.js 15 (App Router) 作为前端
30+
- [ ] `pnpm dev` 能启动开发模式
31+
- [ ] 集成到现有 monorepo(pnpm workspace 正确配置)
32+
```
33+
34+
### 实际实现
35+
36+
```markdown
37+
✅ React 19 + Vite 作为前端
38+
`npm run dev` 启动开发模式
39+
❌ 未配置 pnpm workspace(使用 npm)
40+
```
41+
42+
### 差异分析
43+
44+
| 需求项 | 计划 | 实际 | 差异说明 |
45+
|--------|------|------|----------|
46+
| 前端框架 | Next.js 15 | React 19 + Vite | 使用 Vite 替代 Next.js |
47+
| 包管理器 | pnpm | npm | 使用 npm 替代 pnpm |
48+
| Monorepo | pnpm workspace | 独立项目 | 未集成 monorepo |
49+
50+
## 为什么使用 Vite 而非 Next.js
51+
52+
### 当前实现的优势
53+
54+
1. **启动速度**: Vite 开发服务器启动更快(秒级 vs 十秒级)
55+
2. **配置简单**: 无需处理 Next.js 的复杂配置
56+
3. **打包大小**: Vite 打包更轻量,适合桌面应用
57+
4. **Tauri 集成**: `create-tauri-app` 官方推荐 Vite 模板
58+
59+
### Next.js 特性在桌面应用中的适用性
60+
61+
| Next.js 特性 | 桌面应用需要? | 说明 |
62+
|-------------|---------------|------|
63+
| SSR | ❌ 不需要 | Tauri 是本地应用,无需服务端渲染 |
64+
| SSG | ❌ 不需要 | 桌面应用不需要预生成静态页面 |
65+
| Image Optimization | ⚠️ 可选 | 可使用常规 img 标签 |
66+
| API Routes | ❌ 不需要 | 使用 Tauri 后端 API |
67+
| App Router | ⚠️ 可选 | Vite + React Router 可替代 |
68+
69+
### 结论
70+
71+
当前 **Vite + React** 架构完全满足桌面应用需求,**Next.js 不是必需的**
72+
2273
## 项目结构
2374

2475
```
@@ -37,7 +88,8 @@ apps/desktop/
3788
│ ├── src/ # Rust 源代码
3889
│ ├── Cargo.toml # Rust 依赖
3990
│ └── tauri.conf.json # Tauri 配置
40-
├── package.json # Node.js 依赖
91+
├── index.html # Vite 入口 HTML
92+
├── package.json # Node.js 依赖(npm)
4193
├── vite.config.ts # Vite 配置
4294
├── tailwind.config.js # Tailwind 配置
4395
└── tsconfig.json # TypeScript 配置
@@ -48,7 +100,7 @@ apps/desktop/
48100
### ✅ 基础架构
49101
- [x] Tauri v2 项目初始化
50102
- [x] React 19 + TypeScript 集成
51-
- [x] Vite 构建工具配置
103+
- [x] **Vite** 构建工具配置**非 Next.js**
52104
- [x] 开发服务器正常运行 (`npm run tauri dev`)
53105
- [x] Tauri 窗口正确显示
54106

@@ -71,21 +123,6 @@ apps/desktop/
71123
- [x] 终端状态管理
72124
- [x] 学习进度管理
73125

74-
## 与原始需求的差异
75-
76-
| 原始需求 | 实际实现 | 说明 |
77-
|----------|----------|------|
78-
| Next.js 15 | React 19 + Vite | 使用 Vite 替代 Next.js,更适合桌面应用 |
79-
| pnpm workspace | npm | 暂未配置 monorepo workspace |
80-
| App Router | 不适用 | React + Vite 不使用 App Router |
81-
82-
## 为什么使用 React + Vite 而非 Next.js
83-
84-
1. **桌面应用特性**: Tauri 桌面应用不需要 SSR/SSG
85-
2. **启动速度**: Vite 开发服务器启动更快
86-
3. **配置简单**: 无需处理 Next.js 的复杂配置
87-
4. **打包大小**: Vite 打包更轻量
88-
89126
## 运行方式
90127

91128
```bash
@@ -140,6 +177,42 @@ export default defineConfig({
140177
});
141178
```
142179

180+
### 关键差异: Vite vs Next.js
181+
182+
| 配置 | Vite | Next.js |
183+
|------|------|---------|
184+
| 入口文件 | `index.html` + `main.tsx` | `app/layout.tsx` + `app/page.tsx` |
185+
| 路由 | 手动管理 / React Router | App Router / Pages Router |
186+
| 构建配置 | `vite.config.ts` | `next.config.js` |
187+
| 开发命令 | `vite` | `next dev` |
188+
| 输出目录 | `dist/` | `.next/` |
189+
190+
## 是否需要迁移到 Next.js
191+
192+
### 当前 Vite 架构的不足
193+
194+
1. **路由管理**: 需要手动实现路由(或使用 React Router)
195+
2. **代码分割**: 不如 Next.js 自动优化
196+
3. **生态系统**: 部分 Next.js 插件无法使用
197+
198+
### 迁移成本
199+
200+
| 迁移项 | 工作量 | 优先级 |
201+
|--------|--------|--------|
202+
| 项目结构改造 | 2-3 天 ||
203+
| 路由迁移 | 1-2 天 ||
204+
| 样式系统适配 | 1 天 ||
205+
| Tauri 配置调整 | 0.5 天 ||
206+
207+
### 建议
208+
209+
**短期**: 保持当前 Vite + React 架构,已满足需求
210+
211+
**长期**: 如需以下特性,考虑迁移到 Next.js:
212+
- SSR/SSG 需求
213+
- 统一 Web + 桌面代码库
214+
- 使用 Next.js 生态插件
215+
143216
## 注意事项
144217

145218
1. **CSS 导入**: 确保 `main.tsx` 导入 CSS 文件
@@ -151,8 +224,11 @@ export default defineConfig({
151224

152225
3. **开发端口**: 固定使用 1420 端口
153226

227+
4. **非 Next.js**: 不能使用 Next.js 特有的 API(如 `next/image`, `next/head`
228+
154229
## 后续优化
155230

156231
- [ ] 安装和配置 Tauri Shell 插件
157232
- [ ] 添加更多 Tauri 命令
158233
- [ ] 优化窗口配置(标题栏、尺寸等)
234+
- [ ] 评估 Next.js 迁移需求

0 commit comments

Comments
 (0)