forked from imbytecat/fullstack-starter
- 移除 Tauri v2 代码 (src-tauri/, copy.ts) - 添加 Electrobun 配置和入口 (electrobun.config.ts, src/bun/index.ts) - 更新 package.json 使用 catalog 管理 electrobun 依赖 - 移除 server 中的 @tauri-apps/api 依赖 - 更新 AGENTS.md 文档
80 lines
1.6 KiB
Markdown
80 lines
1.6 KiB
Markdown
# AGENTS.md - Desktop App Guidelines
|
|
|
|
Electrobun desktop shell - loads the server app in a native window.
|
|
|
|
## Architecture
|
|
|
|
- **Type**: Electrobun desktop application
|
|
- **Design**: Bun main process + system webview (or CEF)
|
|
- **Dev mode**: Connects to `localhost:3000` (requires server dev running)
|
|
- **Prod mode**: Embeds server bundle and starts local HTTP server
|
|
|
|
## Commands
|
|
|
|
```bash
|
|
# Development (from apps/desktop/)
|
|
bun dev # Start Electrobun dev mode
|
|
|
|
# Build
|
|
bun build # Build canary release
|
|
bun build:stable # Build stable release
|
|
```
|
|
|
|
## Directory Structure
|
|
|
|
```
|
|
apps/desktop/
|
|
├── src/
|
|
│ └── bun/
|
|
│ └── index.ts # Electrobun main process entry
|
|
├── electrobun.config.ts # Electrobun configuration
|
|
├── package.json
|
|
└── tsconfig.json
|
|
```
|
|
|
|
## Development Workflow
|
|
|
|
1. **Start server dev first**: `cd ../server && bun dev`
|
|
2. **Start Electrobun**: `bun dev` (from apps/desktop/)
|
|
3. Electrobun connects to localhost:3000
|
|
|
|
## Electrobun Patterns
|
|
|
|
### BrowserWindow
|
|
|
|
```typescript
|
|
import { BrowserWindow } from 'electrobun/bun'
|
|
|
|
new BrowserWindow({
|
|
title: 'My App',
|
|
url: 'http://localhost:3000',
|
|
frame: {
|
|
x: 100,
|
|
y: 100,
|
|
width: 1200,
|
|
height: 800,
|
|
},
|
|
})
|
|
```
|
|
|
|
### Events
|
|
|
|
```typescript
|
|
import Electrobun from 'electrobun/bun'
|
|
|
|
Electrobun.events.on('will-quit', () => {
|
|
console.log('App quitting...')
|
|
})
|
|
```
|
|
|
|
## Critical Rules
|
|
|
|
**DO:**
|
|
- Run server dev before desktop dev
|
|
- Use `catalog:` for dependencies
|
|
- Handle server startup gracefully
|
|
|
|
**DON'T:**
|
|
- Hardcode dependency versions (use catalog)
|
|
- Block main thread during server wait
|