# 01. 仓库地图（Directory Map）

> 目标：让 AI 快速定位“要复用的能力”在哪个目录、入口是什么、依赖闭包有哪些。

## `src/`（应用主代码）

- `src/main.ts`：应用入口；决定 mock/pwa 与各子系统初始化顺序
- `src/App.vue`：根组件；包含生产环境禁调试逻辑（`disable-devtool`）
- `src/router/`：路由与权限控制（重点：`index.ts`、`permissions`）
- `src/store/`：Pinia 初始化与业务 store 模块
- `src/i18n/`：国际化初始化、语言获取与翻译辅助
- `src/api/`：按域拆分 API 调用函数（示例：`src/api/router.ts`）
- `src/utils/`：通用工具与基础能力（时间格式化、树结构转换、UUID 等）
- `src/views/`：业务页面集合（通常与路由对应）
- `src/icon/`：图标加载（由 `library/index.ts` 里的 `import '@/icon'` 引入）
- `src/config/`：运行时/构建期配置聚合导出（`vue.config.js` 会 `require('./src/config')`）

## `library/`（模板基础库）

- `library/index.ts`：`setupVab(app)` 的实现：
  - 全局样式：`library/styles/vab.scss`
  - 图标注册：`vab-icons` + `@element-plus/icons-vue`
  - 背景样式：`library/styles/background/*.scss`
  - 插件加载：`library/plugins/**/*.ts` 并 `app.use()`
- `library/build/`：构建期扩展（webpack chain、vue plugins）

## `library/plugins/`（全局插件）

- `vab.ts`：全局注入（gp）与事件总线（`$pub/$sub/$unsub`）
- `directive.ts`：指令（`v-permissions`）
- `errorLog.ts`：全局错误捕获（`app.config.errorHandler`）
- `support.ts`：构建信息输出/依赖检查

## `library/components/`（可复用 UI 组件库）

- `Vab*` 前缀：约定为基础组件/布局子组件（菜单、tabs、header、breadcrumb 等）
- `VabTheme`：主题系统入口（主题抽屉/设置面板），依赖 `$pub/$sub` 与 settings store

## `library/layouts/`（布局体系）

- `library/layouts/index.vue`：主 Layout 入口（路由壳）
- `library/layouts/VabLayout*`：多套布局可选（垂直/横向/综合/浮动/分栏等）

## `mock/`（开发期 Mock）

- `mock/index.js`：devServer 中间件；读取并注册 `mock/controller/*`
- `mock/controller/*.js`：每个文件导出路由数组（`url/type/response`）

## `types/`（类型声明）

- `types/*.d.ts`：路由/store/theme/vab 等声明，配合 `/#` 别名使用
