yumi-admin/README.md
2026-05-17 13:46:34 +08:00

196 lines
5.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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/` 的全局结构、运行方式与分层约定,便于后续开发、交接与排障