|
@@ -0,0 +1,60 @@
|
|
|
|
|
+---
|
|
|
|
|
+description:
|
|
|
|
|
+globs:
|
|
|
|
|
+alwaysApply: false
|
|
|
|
|
+---
|
|
|
|
|
+# Vben 项目结构概览
|
|
|
|
|
+
|
|
|
|
|
+Vben 项目采用 Monorepo 架构,使用 pnpm workspaces 和 Turborepo 进行管理。
|
|
|
|
|
+
|
|
|
|
|
+## 顶层重要文件和目录
|
|
|
|
|
+
|
|
|
|
|
+- **[pnpm-workspace.yaml](mdc:pnpm-workspace.yaml)**: 定义 pnpm workspaces,声明了哪些目录是包 (packages)。
|
|
|
|
|
+- **[turbo.json](mdc:turbo.json)**: Turborepo 配置文件,用于定义任务流水线和缓存策略。
|
|
|
|
|
+- **[package.json](mdc:package.json)**: 项目根目录的 `package.json`,包含顶层脚本和依赖。
|
|
|
|
|
+- **`apps/`**: 存放各个应用程序 (workspaces),例如 `web-ele`、`web-antd` 等。
|
|
|
|
|
+ - 例如: [apps/web-ele/](mdc:apps/web-ele) (Element Plus 版本的应用)
|
|
|
|
|
+- **`packages/`**: 存放共享的包和库 (workspaces),这些包可以被 `apps/` 中的应用或其他 `packages/` 中的包复用。
|
|
|
|
|
+ - **`@core/`**: [packages/@core/](mdc:packages/@core) - 包含核心的基础组件、工具函数、类型定义等。
|
|
|
|
|
+ - **`effects/`**: [packages/effects/](mdc:packages/effects) - 包含与UI框架无关的通用效果、布局、插件等。
|
|
|
|
|
+ - 其他如 `constants/`, `icons/`, `locales/`, `stores/`, `styles/`, `types/`, `utils/` 等也是共享包。
|
|
|
|
|
+- **`internal/`**: 存放项目内部使用的配置和脚本,不作为发布的包。
|
|
|
|
|
+ - **`lint-configs/`**: [internal/lint-configs/](mdc:internal/lint-configs) - 集中管理 ESLint, Stylelint, Prettier 等代码规范工具的配置。
|
|
|
|
|
+ - **`tsconfig/`**: [internal/tsconfig/](mdc:internal/tsconfig) - 共享的 TypeScript 配置文件。
|
|
|
|
|
+ - **`vite-config/`**: [internal/vite-config/](mdc:internal/vite-config) - 共享的 Vite 配置。
|
|
|
|
|
+- **`scripts/`**: [scripts/](mdc:scripts) - 存放项目级别的脚本,如 `vsh` 和 `turbo-run`。
|
|
|
|
|
+
|
|
|
|
|
+## 应用 (Apps)
|
|
|
|
|
+
|
|
|
|
|
+位于 `apps/` 目录下,每个子目录代表一个可独立运行或构建的应用。例如,`apps/web-ele` 是基于 Element Plus 的前端应用。
|
|
|
|
|
+其典型结构可能包含:
|
|
|
|
|
+- `src/`: 源代码目录。
|
|
|
|
|
+ - `api/`: API 请求模块。
|
|
|
|
|
+ - `router/`: 路由配置。
|
|
|
|
|
+ - `store/`:状态管理 (如 Pinia)。
|
|
|
|
|
+ - `views/`: 页面组件。
|
|
|
|
|
+ - `main.ts`: 应用入口文件。
|
|
|
|
|
+- `public/`: 静态资源。
|
|
|
|
|
+- `index.html`: HTML 入口文件。
|
|
|
|
|
+- `vite.config.ts`: Vite 配置文件。
|
|
|
|
|
+
|
|
|
|
|
+## 包 (Packages)
|
|
|
|
|
+
|
|
|
|
|
+位于 `packages/` 目录下,这些是可复用的模块,旨在提高代码共享和维护性。
|
|
|
|
|
+
|
|
|
|
|
+- **`@core`**: 包含非常基础和核心的功能。
|
|
|
|
|
+ - `base/`: 基础设计系统 (design tokens, scss-bem), icons, shared utils, typings。
|
|
|
|
|
+ - [packages/@core/base/design/](mdc:packages/@core/base/design)
|
|
|
|
|
+ - [packages/@core/base/icons/](mdc:packages/@core/base/icons)
|
|
|
|
|
+ - [packages/@core/base/shared/](mdc:packages/@core/base/shared)
|
|
|
|
|
+ - `composables/`: Vue Composables。
|
|
|
|
|
+ - [packages/@core/composables/](mdc:packages/@core/composables)
|
|
|
|
|
+ - `ui-kit/`: UI无关的组件或特定UI库的封装。
|
|
|
|
|
+ - [packages/@core/ui-kit/shadcn-ui/](mdc:packages/@core/ui-kit/shadcn-ui)
|
|
|
|
|
+- **`effects`**: 包含一些通用效果、布局、插件等,通常与具体UI框架解耦。
|
|
|
|
|
+ - `common-ui/`: 通用UI组件。
|
|
|
|
|
+ - [packages/effects/common-ui/](mdc:packages/effects/common-ui)
|
|
|
|
|
+ - `layouts/`: 布局系统。
|
|
|
|
|
+ - [packages/effects/layouts/](mdc:packages/effects/layouts)
|
|
|
|
|
+
|
|
|
|
|
+理解这个 Monorepo 结构对于在项目中导航和开发至关重要。
|