- Vue 3 + TypeScript + Vite
- Vue Router
- Element Plus
- Sass
# 安装依赖
npm install
# 启动开发服务器
npm run dev
# 构建生产版本
npm run build
# 类型检查
npm run type-checksrc/
├── components/ # 公共组件
├── views/ # 页面
│ ├── Home.vue # 首页
│ └── Login.vue # 登录注册
├── layouts/ # 布局组件
├── router/ # 路由
├── types/ # TypeScript 类型定义
├── assets/ # 静态资源
└── main.ts # 入口文件
- 组件文件:
PascalCase.vue - TypeScript 文件:
camelCase.ts - 类型定义:
PascalCase - 变量/函数:
camelCase - CSS类名:
kebab-case
<template>
<!-- 模板 -->
</template>
<script setup lang="ts">
// TypeScript 逻辑
</script>
<style scoped>
/* 样式 */
</style>// 接口定义
interface User {
id: number
name: string
email: string
}
// 函数类型注解
function getUser(id: number): Promise<User> {
// 实现逻辑
}
// Props 类型定义
interface Props {
user: User
showDetails?: boolean
}/**
* 获取用户信息
* @param id - 用户ID
* @returns 用户信息对象
*/
async function getUser(id: number): Promise<User> {
// 实现逻辑
}<template>
<!-- 重要区域注释 -->
<div class="user-info">
<!-- 用户头像 -->
<img :src="avatar" alt="头像" />
</div>
</template>
<script setup lang="ts">
// Props 类型定义
interface Props {
/** 用户头像地址 */
avatar: string
}
</script>使用约定式提交格式:type(scope): description [KAN-xxx]
类型 (type):
feat: 新功能fix: 修复问题refactor: 重构代码style: 代码格式调整docs: 文档更新test: 测试相关chore: 构建或辅助工具变动
示例:
feat(auth): add user login functionality [KAN-123]
fix(cart): resolve product quantity update issue [KAN-124]
refactor(routing): implement customer route prefix system [KAN-125]main: 主分支,保持稳定develop: 开发分支feature/KAN-xxx-description: 功能分支hotfix/KAN-xxx-description: 紧急修复分支
PR 标题格式:[KAN-xxx] Brief description
PR 描述模板:
## 变更类型
- [ ] 新功能
- [ ] Bug 修复
- [ ] 重构
- [ ] 文档更新
## 变更描述
简要描述此次变更的内容和原因
## 测试确认
- [ ] 本地开发环境测试通过
- [ ] 代码审查通过
- [ ] 相关测试用例更新
## 关联 Jira
KAN-xxx: [链接到 Jira ticket]审查重点:
- 代码逻辑正确性
- TypeScript 类型安全
- Vue 组件设计合理性
- 性能考虑
- 安全性检查
审查流程:
- 自测通过后提交 PR
- 至少一人审查通过
- CI/CD 检查通过
- 合并到目标分支
API 对接:
- 后端提供 API 文档(Swagger/OpenAPI)
- 前端基于文档创建 TypeScript 类型定义
- Mock 数据用于并行开发
- 集成测试确保接口正确性
数据格式约定:
// 统一的 API 响应格式
interface ApiResponse<T> {
code: number
message: string
data: T
timestamp: number
}
// 分页数据格式
interface PageData<T> {
list: T[]
total: number
page: number
pageSize: number
}开发环境:
- Node.js >= 18.0.0
- npm >= 8.0.0
- VS Code + Vue 官方扩展
代码质量工具:
- ESLint: 代码规范检查
- Prettier: 代码格式化
- TypeScript: 类型检查
- Husky: Git hooks
- 开发环境: 本地开发服务器
- 测试环境: CI/CD 自动部署到测试服务器
- 生产环境: 手动触发生产部署
问题上报流程:
- 在 Jira 创建 Bug ticket
- 详细描述问题现象和复现步骤
- 标记优先级和影响范围
- 分配给相应开发人员
紧急修复流程:
- 创建 hotfix 分支
- 快速修复并测试
- 直接合并到 main 分支
- 部署到生产环境
- 事后补充完整测试