|
CI/CD / build (push) Failing after 4m15s
Details
|
||
|---|---|---|
| .gitea/workflows | ||
| .github/prompts | ||
| .opencode/command | ||
| .trae | ||
| apps | ||
| docs | ||
| openspec | ||
| packages | ||
| .eslintrc.base.json | ||
| .gitignore | ||
| .prettierrc | ||
| AGENTS.md | ||
| README.md | ||
| demo.md | ||
| dockerfile | ||
| package-lock.json | ||
| package.json | ||
| pnpm-lock.yaml | ||
| pnpm-workspace.yaml | ||
| requestData.md | ||
| turbo.json | ||
| vertex-ai-key.json | ||
README.md
Deotaland AI Monorepo
这是一个基于Monorepo架构的Vue3项目,旨在实现代码复用、统一管理和高效协作。
🏗️ 架构概述
本项目采用Monorepo架构,使用pnpm工作空间和Turborepo来管理多个包:
- apps/: 应用层,包含不同的前端应用
- packages/: 共享包,包含UI组件、工具库等可复用代码
当前项目结构
deotaland-ai-monorepo/
├── apps/
│ └── frontend/ # 主前端应用
├── 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
安装依赖
# 在根目录安装所有依赖
pnpm install
开发模式
# 运行所有应用的开发服务器
pnpm dev
# 运行特定应用
pnpm --filter frontend dev
构建
# 构建所有应用
pnpm build
# 构建特定应用
pnpm --filter frontend build
代码检查
# ESLint检查
pnpm lint
# 代码格式化
pnpm format
📦 工作流程
添加新应用
- 在
apps/目录下创建新应用目录 - 配置应用的
package.json,确保包含必要的构建依赖 - 在根目录的
package.json中确保新应用在workspaces范围内
添加共享包
- 在
packages/目录下创建新包目录 - 配置包的
package.json,设置适当的导出 - 在需要使用的应用中安装依赖
任务执行
项目使用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分支进行开发
- 提交前运行代码检查
- 确保所有测试通过后再合并
🤝 贡献指南
- Fork本仓库
- 创建你的功能分支 (
git checkout -b feature/AmazingFeature) - 提交你的改动 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 打开一个Pull Request
📄 许可证
本项目使用MIT许可证 - 查看 LICENSE 文件了解详情。