Files

29 lines
1.1 KiB
Markdown
Raw Permalink Normal View History

# 02. 关键入口与初始化顺序Boot Sequence
## 入口文件:`src/main.ts`
AI 需要知道“系统从哪里开始、按什么顺序挂载能力”。关键点:
1. `validateSecretKey()`:启动前校验(与授权/环境有关)
2. 生产环境 Mock
- 条件:`process.env.NODE_ENV === 'production'``baseURL` 不是外链(`!isExternal(baseURL)`
- 动作:`require('@/utils/static').mockXHR()`
3. 初始化链路:
- `setupVab(app)`(全局样式、图标、插件)
- `setupI18n(app)`
- `setupStore(app)`
- `setupRouter(app).isReady().then(mount)`
## 全局插件聚合:`library/index.ts`
`setupVab(app)` 做了这些事:
- 引入全局样式:`library/styles/vab.scss`
- 注册图标:
- `VabIcon`(来自 `vab-icons`
- `@element-plus/icons-vue` 全量组件注册
- 自动加载背景样式:`library/styles/background/*.scss`
- 自动加载插件:`library/plugins/**/*.ts`(默认导出 Vue 插件)
> 复用提示:自动全量加载在“抽取模块”时容易带入不必要依赖;迁移时应以“最小闭包”为原则(见 [AI-Reuse-Playbook.md](AI-Reuse-Playbook.md))。