Files

30 lines
1.4 KiB
Markdown
Raw Permalink Normal View History

# 11. Plugins 系统library/plugins/*
> 目标:明确本仓库“全局注入能力/指令/错误处理”的来源,避免抽取组件时漏掉运行时注入。
## 插件目录
- `library/plugins/vab.ts`:全局 gp 注入 + mitt 事件总线(`$pub/$sub/$baseMessage/...`
- `library/plugins/directive.ts`:自定义指令(`v-permissions`
- `library/plugins/errorLog.ts`:全局错误捕获(`app.config.errorHandler`)并写入 store
- `library/plugins/support.ts`:构建信息输出与依赖存在性检查
## 安装方式
- 正常路径:`library/index.ts` 会自动加载 `library/plugins/**/*.ts``app.use()`setupVab 链路内)
- 抽取到目标项目:
- 若不复用 `library/index.ts` 的自动加载逻辑,需要在入口手动 `app.use(plugin)`
## 最小依赖闭包
- `vab.ts`:依赖 Element Plus 全局 APIElMessage/ElLoading/ElMessageBox/ElNotification+ lodash + mitt + `src/config`
- `directive.ts`:依赖 `src/utils/permission`hasPermission 及其权限数据来源)
- `errorLog.ts`:依赖 `src/store/modules/errorLog``src/config/errorLog`
- `support.ts`:依赖 `__APP_INFO__` 构建注入
## 验收点smoke
- `vab``$baseMessage('ok')` 能弹出 message`$pub/$sub` 能收发事件
- `directive`:模板中 `v-permissions` 不报错且能按权限生效
- `errorLog`:手动触发异常能写入 errorLog store