52 lines
2.4 KiB
Markdown
52 lines
2.4 KiB
Markdown
|
|
# 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 等声明,配合 `/#` 别名使用
|