|
| 1 | +--- |
| 2 | +alwaysApply: true |
| 3 | +--- |
| 4 | + |
| 5 | +# 项目开发规范 |
| 6 | + |
| 7 | +- 你是一位前端开发专家,精通前端架构 |
| 8 | + |
| 9 | +## 技术栈 |
| 10 | + |
| 11 | +- 框架: Vue 3.5+ |
| 12 | +- 打包构建工具: Vite 7+ |
| 13 | +- 路由管理: Vue Router |
| 14 | +- 状态管理: Pinia |
| 15 | +- UI 组件库: Element Plus |
| 16 | +- CSS 预处理器: Scss |
| 17 | +- 代码校验与格式化: ESLint |
| 18 | +- 开发语言: TypeScript |
| 19 | +- 包管理工具: pnpm |
| 20 | +- 网络请求: Axios |
| 21 | + |
| 22 | +## 导入规范 |
| 23 | + |
| 24 | +- 使用路径别名 `@` 指向 `src` 目录 |
| 25 | +- 使用路径别名 `@@` 指向 `src/common` 目录 |
| 26 | + |
| 27 | +## 目录结构 |
| 28 | + |
| 29 | +```sh |
| 30 | +# v3-admin-vite |
| 31 | +├─ .husky # commit 时进行代码校验和格式化 |
| 32 | +├─ .vscode # vscode 配置和插件 |
| 33 | +├─ public |
| 34 | +│ ├─ favicon.ico # 网站头像 |
| 35 | +│ ├─ app-loading.css # 首屏 loading 动画 |
| 36 | +│ └─ detect-ie.js # 检测 ie |
| 37 | +├─ src |
| 38 | +│ ├─ common # 通用目录 |
| 39 | +│ │ ├─ apis # 通用目录 - 接口 |
| 40 | +│ │ ├─ assets # 通用目录 - 静态资源 |
| 41 | +│ │ ├─ components # 通用目录 - 组件 |
| 42 | +│ │ ├─ composables # 通用目录 - 组合式函数 |
| 43 | +│ │ ├─ constants # 通用目录 - 常量 |
| 44 | +│ │ └─ utils # 通用目录 - 工具函数 |
| 45 | +│ ├─ http # 网络请求 |
| 46 | +│ ├─ layouts # 布局 |
| 47 | +│ ├─ pages # 页面 |
| 48 | +│ │ └─ login # 登录模块 |
| 49 | +│ │ ├─ apis # 登录模块 - 私有接口 |
| 50 | +│ │ ├─ components # 登录模块 - 私有组件 |
| 51 | +│ │ ├─ composables # 登录模块 - 私有组合式函数 |
| 52 | +│ │ ├─ images # 登录模块 - 私有图片 |
| 53 | +│ │ └─ index.vue # 登录模块 - 页面 |
| 54 | +│ ├─ pinia # 状态管理 |
| 55 | +│ ├─ plugins # 插件(全局组件、自定义指令等) |
| 56 | +│ ├─ router # 路由 |
| 57 | +│ ├─ App.vue # 入口页面 |
| 58 | +│ └─ main.ts # 入口文件 |
| 59 | +├─ tests # 单元测试 |
| 60 | +├─ types # 类型声明 |
| 61 | +├─ .editorconfig # 编辑器配置 |
| 62 | +├─ .env # 所有环境 |
| 63 | +├─ .env.development # 开发环境 |
| 64 | +├─ .env.production # 生产环境 |
| 65 | +├─ .env.staging # 预发布环境 |
| 66 | +├─ eslint.config.js # eslint 配置 |
| 67 | +├─ tsconfig.json # ts 配置 |
| 68 | +├─ uno.config.ts # unocss 配置 |
| 69 | +└─ vite.config.ts # vite 配置 |
| 70 | +``` |
| 71 | + |
| 72 | +- 保持目录结构清晰,遵循现有目录规范 |
| 73 | +- 同一个业务逻辑的代码和资源应当被收拢到了一起,避免在不同的目录间来回跳跃 (例如登录模块的接口应该放在 `@/pages/login/apis` 而不是 `@/common/apis`) |
| 74 | + |
| 75 | +## 代码 |
| 76 | + |
| 77 | +- 编写整洁不冗余、可读性强的代码,始终提取共用逻辑 |
| 78 | +- 编写对开发者友好的注释 |
| 79 | +- 代码必须能够立即运行,包含所有必要的导入和依赖 |
| 80 | +- 尽量避免使用兼容性不好的 JS、CSS 语法,使用时必须提供相应的注释 |
| 81 | +- 建议参考项目已有代码的编码风格 |
| 82 | + |
| 83 | +## 代码检查 |
| 84 | + |
| 85 | +- 使用 ESLint 进行代码校验与格式化 |
| 86 | +- 禁用 Prettier 进行代码格式化 |
| 87 | + |
| 88 | +## 其他 |
| 89 | + |
| 90 | +- 优先使用现有第三方依赖,避免重新发明轮子 |
0 commit comments