# 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)）。
