1.6 KiB
1.6 KiB
AGENTS.md
This file provides guidance to agents when working with code in this repository.
Build Commands
pnpm dev- Start dev server (config:config/vite.config.dev.ts)pnpm build- Production build (config:config/vite.config.prod.ts)pnpm lint- Run ESLint + Prettier- No test framework configured
Critical Architecture Notes
Vite Config Location
Config files are in config/ directory, NOT root. All vite commands reference ./config/vite.config.*.ts.
Two Axios Instances
src/api/request.ts- Custom instance with workspace header support andneedWorkspaceparamsrc/api/interceptor.ts- Global instance with Bearer token and code 20000 validation
Storage Pattern
Use SafeStorage instead of localStorage directly. Supports TTL expiry and type-safe keys via AppStorageKey enum.
Dynamic Route Loading
Routes are loaded from server via fetchServerMenuConfig() with permission guard in permission.ts. Uses flags isMenuLoading/isMenuLoaded to prevent duplicate loads.
useRequest Hook Limitation
useRequest() does NOT work in async functions - it immediately invokes the API. Use .bind(null, params) to pass arguments.
Code Style
- No semicolons (Prettier enforced)
- Single quotes, trailing commas (es5)
- Print width: 140 characters
- Path alias:
@/→src/
Vue/i18n Aliases Required
Vite config includes aliases for vue-i18n/dist/vue-i18n.cjs.js and vue/dist/vue.esm-bundler.js - don't remove these.