Skip to content

基础概念

应用 vs 框架包

职责
packages/*可复用运行时、组件、工具;无业务字段
apps/*消费方:接口适配、页面、权限码、菜单数据
业务项目同 apps:通过 npm / file / workspace 依赖 @lumal/*

标准语义字段

框架内部优先使用稳定字段,应用层做映射:

  • 菜单pathnamecomponentchildrenmeta.titlemeta.authoritymeta.activeMenumeta.badge
  • 字典labelvaluecolordisabledchildren
  • 表单 / 表格fielddictionaryoptionscomponentProps
  • 分页{ items, total }
  • 会话{ accessToken, refreshToken?, expiresAt? }

非标准结构用 fieldNamesparseResponsetransform 或专用 adapter,禁止在组件内散落公司字段名。

公开入口

每个包通过 package.json exports 暴露入口,例如:

ts
import { createLumalAdmin } from '@lumal/core'
import { LumalSchemaForm } from '@lumal/core/components'
import { createMenuRouteRuntime } from '@lumal/core/router'
import '@lumal/core/style.css'

应用不得依赖 packages/*/src 或测试内部文件(monorepo 开发可用 @lumal/vite alias)。

依赖方向(简图)

text
@lumal/icons → @lumal/icons-vue → @lumal/core ← apps
@lumal/cockpit → @lumal/core
@lumal/vben-compat → @lumal/core
@lumal/charts / @lumal/datav   (独立)
@lumal/vite                   (构建)

详见 包边界

基于 MIT 许可发布 · Vue 3 · TypeScript · Vite · Element Plus