# Frontend `Frontend/` 是 AppPlatform 的前端工作区,采用 `pnpm workspace + Turbo` 的 monorepo 组织方式。当前目录主要承载主业务应用、一组共享包和工程脚本。 项目整体基于 Vue 3 技术栈,并延续 `Vue Vben Admin v5` 的分层方式做业务化扩展。 ## 1. 技术栈概览 - Vue 3 - Vite - TypeScript - Pinia - Vue Router - Turbo - pnpm workspace - Ant Design Vue / antdv-next ## 2. 工作区结构 ```text Frontend/ ├── apps/ 主业务应用(数据平台) ├── packages/ 业务与框架共享包 ├── internal/ 内部工程配置与构建基础设施 ├── scripts/ CLI 与部署脚本 ├── turbo.json Turbo 任务编排 ├── pnpm-workspace.yaml Workspace 包范围定义 └── package.json 根脚本与统一依赖入口 ``` ## 3. 关键目录说明 ### 3.1 apps 主业务前端应用,包名为 `@vben/web-antdv-next`。 - 应用标题默认配置为“数据平台” - 开发端口来自 `apps/.env.development`,默认是 `5999` - 开发态通过 Vite 代理将 `/console` 转发到 `http://127.0.0.1:2700` - 入口在 `apps/src/main.ts` - 启动装配逻辑在 `apps/src/bootstrap.ts` `apps/src` 主要分层如下: - `api/core`:较新的核心接口封装 - `api/legacy`:历史业务接口封装 - `router`:路由与权限守卫 - `store`:状态管理 - `layouts`:布局入口 - `views/*`:按业务域组织的页面模块 - `components`:应用级组件 - `adapter`:表单、组件等适配层 - `locales`:国际化资源 ### 3.2 packages 共享包分为几层: - `packages/@core/base/*` - 底层基础能力,如 `design`、`icons`、`shared`、`typings` - 约束:`base` 层“请勿引入 workspace 依赖” - `packages/@core/ui-kit/*` - 通用 UI 原子/组合能力,如 `form-ui`、`layout-ui`、`menu-ui`、`popup-ui`、`tabs-ui`、`shadcn-ui` - `packages/@core/composables` - 通用组合式能力 - `packages/@core/preferences` - 偏好设置相关底层能力 - `packages/effects/*` - 偏应用层的组合能力,如 `access`、`common-ui`、`hooks`、`layouts`、`plugins`、`request` - `packages/constants|icons|locales|preferences|stores|styles|types|utils` - 面向应用的共享常量、样式、类型、工具与状态能力 ### 3.3 internal 内部工程基础设施,不直接承载业务页面: - `internal/lint-configs/*`:ESLint / Stylelint 共享配置 - `internal/tsconfig`:TS 配置基线 - `internal/vite-config`:Vite 配置封装 - `internal/tailwind-config`:Tailwind 配置 - `internal/node-utils`:Node 侧工具能力 ### 3.4 scripts 工程脚本目录: - `scripts/turbo-run` - 交互式运行 monorepo 中具备相同脚本的包 - `scripts/vsh` - 工程巡检工具,包含依赖检查、循环依赖扫描、发布检查、lint 封装等能力 - `scripts/deploy` - Docker / Nginx 部署相关脚本 ## 4. 安装与启动 ### 4.1 环境要求 - Node.js: `^20.19.0 || ^22.18.0 || ^24.0.0` - pnpm: `>=10.0.0` 推荐先启用 Corepack: ```bash corepack enable pnpm install ``` 项目根目录限制使用 `pnpm`,`npm/yarn` 不作为默认包管理器。 ### 4.2 常用开发命令 在 `Frontend/` 目录执行: ```bash # 交互式选择带 dev 脚本的包启动 pnpm dev # 启动主业务应用 pnpm dev:antdv-next ``` ### 4.3 构建命令 ```bash # 构建整个 workspace pnpm build # 构建主应用 pnpm build:antdv-next # 本地构建 Docker 镜像 pnpm build:docker ``` ### 4.4 质量与测试命令 ```bash # lint / format pnpm lint pnpm format # 类型检查、依赖检查、循环依赖检查、拼写检查 pnpm check # 单元测试 pnpm test:unit ``` ## 5. 环境变量与运行时约定 ### 5.1 apps `apps/.env` 与 `apps/.env.*` 中常见变量: - `VITE_APP_TITLE`:应用标题 - `VITE_APP_NAMESPACE`:本地缓存、store 等命名空间前缀 - `VITE_APP_STORE_SECURE_KEY`:持久化加密密钥 - `VITE_PORT`:开发端口 - `VITE_GLOB_API_URL`:接口基地址 当前开发环境关键值: - 端口:`5999` - 接口:`http://127.0.0.1:2700/console` ## 6. 全局工程约定 - 根命令统一从 `Frontend/package.json` 发起,避免在子包内各自维护重复脚本 - `pnpm dev` 与 `pnpm preview` 通过 `turbo-run` 做交互式过滤,不是“启动所有应用” - Turbo 任务编排定义在 `turbo.json` - workspace 范围定义在 `pnpm-workspace.yaml` - `.npmrc` 已配置镜像源与 peer 依赖策略,默认使用 `https://registry.npmmirror.com` - `@vben-core/base` 层保持最底层,不应反向依赖其它 workspace 包 - 主应用通过偏好设置系统按 `namespace + version + env` 隔离本地缓存与持久化数据 ## 7. 建议的阅读顺序 第一次接手该目录,建议按下面顺序阅读: 1. `package.json` 2. `pnpm-workspace.yaml` 3. `turbo.json` 4. `apps/package.json` 5. `apps/src/main.ts` 6. `apps/src/bootstrap.ts` 7. `internal/vite-config/src/config/application.ts` ## 8. 补充说明 - 现有 `README.zh-CN.md` 仅保留了最基础的安装与运行说明 - 本文件用于补充 `Frontend/` 的全局结构、运行方式与分层约定,便于后续开发、交接与排障