75 lines
2.3 KiB
Markdown
75 lines
2.3 KiB
Markdown
# AGENTS.md
|
|
|
|
This file provides guidance to AI when working with code in this repository.
|
|
|
|
## Project Overview
|
|
|
|
Vue 3 TypeScript application with Vite.
|
|
|
|
## 开发服务器
|
|
|
|
- **不要启动开发服务器**: 开发服务器通常已经由用户启动。除非特别要求,否则不要执行 `pnpm dev` 之类的命令。
|
|
- **不要执行 Playwright 测试**: 除非用户明确要求,否则不要运行 Playwright 端到端测试。
|
|
|
|
### Routing & Layouts
|
|
|
|
- **File-based routing**: Uses `unplugin-vue-router` with `.page.vue` and `.page.md` extensions in `src/pages/`
|
|
- **Route naming**: Converts to PascalCase (e.g., `user-profile.page.vue` → `UserProfile`)
|
|
- **Layouts**: `vite-plugin-vue-meta-layouts` with default layout `base-layout/base-layout`
|
|
|
|
### Auto-Import Configuration
|
|
|
|
Multiple auto-import systems are active:
|
|
|
|
- **Vue APIs**: Core Vue, VueUse, Pinia, Vue Router, vue-i18n
|
|
- **Components**: Auto-registered from multiple UI libraries (Naive UI, PrimeVue)
|
|
- **Icons**: Uses `unplugin-icons` with `icon-` prefix; custom SVGs from `src/assets/icons/svgs/` available via `icon-svg-filename`
|
|
|
|
**IMPORTANT - Auto-Import Limitations**:
|
|
|
|
- **Dynamic components**: Auto-imported components cannot be used with `<component :is="..." />` syntax
|
|
- ❌ Avoid: `<component :is="`icon-${name}`" />`
|
|
- ✅ Use: `<icon-foo v-if="condition" />` with `v-if`/`v-else-if`/`v-else` directives
|
|
|
|
- **Icons in TypeScript/TSX files**: Auto-import for icons does NOT work. You must explicitly import them using the `~icons/` prefix:
|
|
|
|
```tsx
|
|
import IconMenuRounded from '~icons/material-symbols/menu-rounded';
|
|
|
|
// Then use in JSX/TSX
|
|
const menuOption = {
|
|
icon: () => <IconMenuRounded />,
|
|
};
|
|
```
|
|
|
|
### UI Component Libraries
|
|
|
|
Project has multiple UI frameworks configured:
|
|
|
|
- **Naive UI**
|
|
|
|
- **PrimeVue**:
|
|
|
|
### Styling
|
|
|
|
- **UnoCSS**: Wind preset
|
|
- **SCSS**: Modern compiler API with global imports from `@/styles/scss/global.scss`
|
|
|
|
### State Management
|
|
|
|
Pinia stores
|
|
|
|
### Cloudflare Workers Integration
|
|
|
|
- **Server entry**: `server/index.ts` handles `/api/*` routes with KV storage
|
|
- **KV binding**: Named `KV`
|
|
|
|
### Vite Plugins (notable)
|
|
|
|
- **vue-macros**: Enhanced Vue features
|
|
- **unplugin-vue-markdown**: `.md` files as Vue components with frontmatter
|
|
|
|
### Path Aliases
|
|
|
|
- `@/` maps to `src/` directory
|