---
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 结构对于在项目中导航和开发至关重要。
