refactor(desktop): 替换 WebUI 为 Electron + electron-vite 桌面壳方案

- 使用 electron-vite 构建 main/preload,electron-builder 打包分发
- main process: dev 模式直连 localhost:3000,生产模式 spawn sidecar binary
- 添加 loading 页面,server 就绪前显示加载动画
- 更新 catalog 依赖: electron, electron-vite, electron-builder
- 移除 @webui-dev/bun-webui 依赖
This commit is contained in:
2026-02-08 18:16:13 +08:00
parent e8e473b357
commit 7318600e20
13 changed files with 961 additions and 110 deletions

View File

@@ -11,7 +11,7 @@ Guidelines for AI agents working in this Bun monorepo.
- **Package Manager**: Bun — **NOT npm / yarn / pnpm**
- **Apps**:
- `apps/server` - TanStack Start fullstack web app (see `apps/server/AGENTS.md`)
- `apps/desktop` - Electrobun desktop shell, loads server in native window (see `apps/desktop/AGENTS.md`)
- `apps/desktop` - Electron desktop shell, sidecar server pattern (see `apps/desktop/AGENTS.md`)
- **Packages**: `packages/utils`, `packages/tsconfig` (shared configs)
## Build / Lint / Test Commands
@@ -41,9 +41,11 @@ bun db:studio # Open Drizzle Studio
### Desktop App (`apps/desktop`)
```bash
bun dev # Start Electrobun dev mode (requires server dev running)
bun build # Build canary release
bun build:stable # Build stable release
bun dev # electron-vite dev mode (requires server dev running)
bun build # electron-vite build (main + preload)
bun build:win # Build + package for Windows
bun build:mac # Build + package for macOS
bun build:linux # Build + package for Linux
bun fix # Biome auto-fix
bun typecheck # TypeScript check
```
@@ -158,11 +160,14 @@ export const myTable = pgTable('my_table', {
│ │ │ ├── api/ # ORPC contracts, routers, middlewares
│ │ │ └── db/ # Drizzle schema
│ │ └── AGENTS.md
│ └── desktop/ # Electrobun desktop shell
│ └── desktop/ # Electron desktop shell
│ ├── src/
│ │ ── bun/
│ │ └── index.ts # Main process entry
├── electrobun.config.ts # Electrobun configuration
│ │ ── main/
│ │ └── index.ts # Main process entry
│ └── preload/
│ │ └── index.ts # Preload script
│ ├── electron.vite.config.ts
│ ├── electron-builder.yml # Packaging config
│ └── AGENTS.md
├── packages/
│ ├── tsconfig/ # Shared TS configs
@@ -175,4 +180,4 @@ export const myTable = pgTable('my_table', {
## See Also
- `apps/server/AGENTS.md` - Detailed TanStack Start / ORPC patterns
- `apps/desktop/AGENTS.md` - Electrobun desktop development guide
- `apps/desktop/AGENTS.md` - Electron desktop development guide