Files
seastem-electronjs/apps/desktop/AGENTS.md
imbytecat adb14cff77 chore: 重构 Turbo 构建配置并强化 Bun 专用说明
将应用特定的构建输出配置下沉至各自 turbo.json,根级 build 任务添加拓扑依赖;AGENTS.md 统一添加 Bun 专用运行时警告;桌面端启用 Linux CEF 渲染器。
2026-02-07 16:14:55 +08:00

83 lines
1.8 KiB
Markdown

# AGENTS.md - Desktop App Guidelines
Electrobun desktop shell - loads the server app in a native window.
> **⚠️ This project uses Bun — NOT Node.js / npm. All commands use `bun`. Never use `npm`, `npx`, or `node`.**
## 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:**
- Use `npm`, `npx`, `node`, `yarn`, `pnpm` — always use `bun` / `bunx`
- Hardcode dependency versions (use catalog)
- Block main thread during server wait