138 lines
3.0 KiB
Markdown
138 lines
3.0 KiB
Markdown
# Deotaland AI Monorepo
|
||
|
||
这是一个基于Monorepo架构的Vue3项目,旨在实现代码复用、统一管理和高效协作。
|
||
|
||
## 🏗️ 架构概述
|
||
|
||
本项目采用Monorepo架构,使用pnpm工作空间和Turborepo来管理多个包:
|
||
|
||
- **apps/**: 应用层,包含不同的前端应用
|
||
- **packages/**: 共享包,包含UI组件、工具库等可复用代码
|
||
|
||
### 当前项目结构
|
||
|
||
```
|
||
deotaland-ai-monorepo/
|
||
├── apps/
|
||
│ └── frontend/ # 主前端应用
|
||
│ └── FrontendDesigner/ # 管理端应用
|
||
├── packages/ # 共享包目录
|
||
├── .eslintrc.base.json # 基础ESLint配置
|
||
├── .prettierrc # Prettier配置
|
||
├── package.json # 根配置
|
||
├── pnpm-workspace.yaml # pnpm工作空间配置
|
||
└── turbo.json # Turborepo配置
|
||
```
|
||
|
||
## 🚀 快速开始
|
||
|
||
### 环境要求
|
||
|
||
- Node.js >= 16.0.0
|
||
- pnpm >= 8.0.0
|
||
|
||
### 安装依赖
|
||
|
||
```bash
|
||
# 在根目录安装所有依赖
|
||
pnpm install
|
||
```
|
||
|
||
### 开发模式
|
||
|
||
```bash
|
||
# 运行所有应用的开发服务器
|
||
pnpm dev
|
||
|
||
# 运行特定应用
|
||
pnpm --filter frontend dev
|
||
```
|
||
|
||
### 构建
|
||
|
||
```bash
|
||
# 构建所有应用
|
||
pnpm build
|
||
|
||
# 构建特定应用
|
||
pnpm --filter frontend build
|
||
```
|
||
|
||
### 代码检查
|
||
|
||
```bash
|
||
# ESLint检查
|
||
pnpm lint
|
||
|
||
# 代码格式化
|
||
pnpm format
|
||
```
|
||
|
||
## 📦 工作流程
|
||
|
||
### 添加新应用
|
||
|
||
1. 在 `apps/` 目录下创建新应用目录
|
||
2. 配置应用的 `package.json`,确保包含必要的构建依赖
|
||
3. 在根目录的 `package.json` 中确保新应用在 `workspaces` 范围内
|
||
|
||
### 添加共享包
|
||
|
||
1. 在 `packages/` 目录下创建新包目录
|
||
2. 配置包的 `package.json`,设置适当的导出
|
||
3. 在需要使用的应用中安装依赖
|
||
|
||
### 任务执行
|
||
|
||
项目使用Turborepo进行任务管理:
|
||
|
||
- `turbo run dev`: 启动开发服务器
|
||
- `turbo run build`: 构建所有包
|
||
- `turbo run lint`: 代码检查
|
||
- `turbo run clean`: 清理构建产物
|
||
|
||
## 🔧 技术栈
|
||
|
||
- **框架**: Vue 3 (Composition API)
|
||
- **构建工具**: Vite
|
||
- **包管理器**: pnpm
|
||
- **工作空间**: pnpm workspaces
|
||
- **任务管理**: Turborepo
|
||
- **代码质量**: ESLint + Prettier
|
||
- **状态管理**: Pinia
|
||
- **UI框架**: Element Plus
|
||
- **路由**: Vue Router 4
|
||
- **国际化**: Vue I18n
|
||
|
||
## 📝 开发规范
|
||
|
||
### 代码风格
|
||
|
||
- 使用ESLint和Prettier进行代码格式化
|
||
- Vue组件采用PascalCase命名
|
||
- 工具函数采用camelCase命名
|
||
- 优先使用Composition API
|
||
|
||
### 包管理
|
||
|
||
- 避免在应用层安装构建依赖
|
||
- 通用依赖安装到根目录
|
||
- 特定依赖根据需要安装到对应包
|
||
|
||
### Git工作流
|
||
|
||
- 使用feature分支进行开发
|
||
- 提交前运行代码检查
|
||
- 确保所有测试通过后再合并
|
||
|
||
## 🤝 贡献指南
|
||
|
||
1. Fork本仓库
|
||
2. 创建你的功能分支 (`git checkout -b feature/AmazingFeature`)
|
||
3. 提交你的改动 (`git commit -m 'Add some AmazingFeature'`)
|
||
4. 推送到分支 (`git push origin feature/AmazingFeature`)
|
||
5. 打开一个Pull Request
|
||
|
||
## 📄 许可证
|
||
|
||
本项目使用MIT许可证 - 查看 [LICENSE](LICENSE) 文件了解详情。 |