# 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 全局 API(ElMessage/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