29 lines
1.1 KiB
Markdown
29 lines
1.1 KiB
Markdown
|
|
# 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))。
|