# OpenSpec-lite: 模块清单(可逐步补全) # 目的:让 AI 在“选模块”阶段就能定位入口与主要依赖。 modules: - id: boot name: 应用入口与初始化 type: core entrypoints: - src/main.ts - library/index.ts keywords: - createApp - setupVab - setupI18n - setupStore - setupRouter - id: setup-vab name: setupVab(library/index.ts 自动加载/图标/样式/插件) type: core entrypoints: - library/index.ts - library/plugins/ - library/styles/ - src/icon/index.ts keywords: - require.context - VabIcon - createHead - id: router name: 路由与权限 type: core entrypoints: - src/router/index.ts - src/router/permissions.ts keywords: - constantRoutes - asyncRoutes - meta - id: store name: Pinia 状态 type: core entrypoints: - src/store/index.ts - src/store/modules keywords: - createPinia - id: store-settings name: Settings Store(主题/布局等全局配置) type: store entrypoints: - src/store/modules/settings.ts - library/styles/variables/ keywords: - updateTheme - themeName - menuWidth - id: store-routes name: Routes Store(路由拦截/菜单路由设置) type: store entrypoints: - src/store/modules/routes.ts keywords: - setRoutes - resetRouter - id: store-user name: User Store(登录/用户信息/登出) type: store entrypoints: - src/store/modules/user.ts keywords: - getUserInfo - resetAll - id: store-tabs name: Tabs Store(visitedRoutes) type: store entrypoints: - src/store/modules/tabs.ts keywords: - visitedRoutes - noClosable - id: store-errorlog name: ErrorLog Store(错误日志收集) type: store entrypoints: - src/store/modules/errorLog.ts keywords: - addErrorLog - id: i18n name: 国际化 type: core entrypoints: - src/i18n/index.ts keywords: - createI18n - translate - id: api-system name: API 层(src/api + request 封装) type: core entrypoints: - src/api/ - src/utils/request.ts keywords: - axios - interceptors - refreshToken - id: config-system name: 配置系统(src/config 聚合) type: core entrypoints: - src/config/index.js - src/config keywords: - cli.config - theme.config - net.config - id: access-control name: 访问控制(ACL + hasPermission + v-permissions) type: core entrypoints: - src/store/modules/acl.ts - src/utils/permission.ts - library/plugins/directive.ts keywords: - hasPermission - v-permissions - id: mock name: 本地 Mock type: tooling entrypoints: - mock/index.js - mock/controller keywords: - setupMiddlewares - mockjs - responseFake - id: icons name: SVG Icons(src/icon) type: ui entrypoints: - src/icon/index.ts - src/icon keywords: - require.context - svg - id: styles name: 样式体系(library/styles) type: ui entrypoints: - library/styles/vab.scss - library/styles/variables - library/styles/background keywords: - scss - variables - id: ui-components name: Vab 组件库 type: ui entrypoints: - library/components/ keywords: - Vab - ElementPlus - id: vab-app name: VabApp type: ui entrypoints: - library/components/VabApp/ - id: vab-app-main name: VabAppMain type: ui entrypoints: - library/components/VabAppMain/ - id: vab-avatar name: VabAvatar type: ui entrypoints: - library/components/VabAvatar/ - id: vab-breadcrumb name: VabBreadcrumb type: ui entrypoints: - library/components/VabBreadcrumb/ - id: vab-card name: VabCard type: ui entrypoints: - library/components/VabCard/ - id: vab-colorful-card name: VabColorfulCard type: ui entrypoints: - library/components/VabColorfulCard/ - id: vab-column-bar name: VabColumnBar type: ui entrypoints: - library/components/VabColumnBar/ - id: vab-fold name: VabFold type: ui entrypoints: - library/components/VabFold/ - id: vab-footer name: VabFooter type: ui entrypoints: - library/components/VabFooter/ - id: vab-full-screen name: VabFullScreen type: ui entrypoints: - library/components/VabFullScreen/ - id: vab-language name: VabLanguage type: ui entrypoints: - library/components/VabLanguage/ - id: vab-link name: VabLink type: ui entrypoints: - library/components/VabLink/ - id: vab-logo name: VabLogo type: ui entrypoints: - library/components/VabLogo/ - id: vab-router-view name: VabRouterView type: ui entrypoints: - library/components/VabRouterView/ - id: vab-query-form name: VabQueryForm type: ui entrypoints: - library/components/VabQueryForm/ - id: vab-error-log name: VabErrorLog type: ui entrypoints: - library/components/VabErrorLog/ - id: vab-menu name: VabMenu type: ui entrypoints: - library/components/VabMenu/ - id: vab-nav name: VabNav type: ui entrypoints: - library/components/VabNav/ - id: vab-tabs name: VabTabs type: ui entrypoints: - library/components/VabTabs/ - id: vab-refresh name: VabRefresh type: ui entrypoints: - library/components/VabRefresh/ - id: vab-search name: VabSearch type: ui entrypoints: - library/components/VabSearch/ - id: vab-lock name: VabLock type: ui entrypoints: - library/components/VabLock/ - id: vab-notice name: VabNotice type: ui entrypoints: - library/components/VabNotice/ - id: vab-header name: VabHeader type: ui entrypoints: - library/components/VabHeader/ - id: vab-sidebar name: VabSideBar type: ui entrypoints: - library/components/VabSideBar/ - id: layouts name: 布局体系 type: ui entrypoints: - library/layouts/index.vue - library/layouts/ keywords: - Layout - id: vab-theme name: Theme 系统(VabTheme) type: ui entrypoints: - library/components/VabTheme/ - src/store/modules/settings.ts - library/plugins/vab.ts keywords: - theme - updateTheme - $pub - id: plugins name: Plugins(全局注入/指令/错误处理) type: core entrypoints: - library/plugins/ keywords: - app.use - globalProperties - id: plugin-vab name: plugin-vab(gp + mitt 事件总线) type: plugin entrypoints: - library/plugins/vab.ts keywords: - $pub - $sub - mitt - id: plugin-directive name: plugin-directive(v-permissions) type: plugin entrypoints: - library/plugins/directive.ts keywords: - v-permissions - hasPermission - id: plugin-errorlog name: plugin-errorlog(全局错误捕获) type: plugin entrypoints: - library/plugins/errorLog.ts keywords: - errorHandler - useErrorLogStore - id: plugin-support name: plugin-support(构建信息/依赖检查) type: plugin entrypoints: - library/plugins/support.ts keywords: - __APP_INFO__ - id: build name: 构建扩展 type: tooling entrypoints: - vue.config.js - library/build keywords: - chainWebpack - createVuePlugin - id: plop name: Plop 代码生成器 type: tooling entrypoints: - plopfile.js - plop-templates/ keywords: - plop - setGenerator