Skip to content

Commit 768962f

Browse files
author
李磊
committed
fix: add cursor rule
1 parent ce36694 commit 768962f

File tree

10 files changed

+837
-63
lines changed

10 files changed

+837
-63
lines changed

.cursor/rules/code-standards.mdc

Lines changed: 101 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,101 @@
1+
---
2+
description:
3+
globs:
4+
alwaysApply: false
5+
---
6+
# 代码规范指南
7+
8+
## 通用规范
9+
10+
1. 文件命名
11+
- 使用 kebab-case 命名文件
12+
- 组件文件使用 PascalCase
13+
- 测试文件以 `.test.ts` 或 `.spec.ts` 结尾
14+
15+
2. 代码格式
16+
- 使用 2 空格缩进
17+
- 使用单引号
18+
- 行尾使用分号
19+
- 最大行长度 100 字符
20+
21+
3. 注释规范
22+
- 使用 JSDoc 风格注释
23+
- 关键代码需要注释说明
24+
- 避免无意义的注释
25+
- 保持注释的及时更新
26+
27+
## TypeScript 规范
28+
29+
1. 类型定义
30+
- 优先使用 interface 定义对象类型
31+
- 使用 type 定义联合类型和工具类型
32+
- 避免使用 any
33+
- 合理使用泛型
34+
35+
2. 命名规范
36+
- 接口名以 I 开头
37+
- 类型名以 T 开头
38+
- 枚举名使用 PascalCase
39+
- 常量使用 UPPER_SNAKE_CASE
40+
41+
## Vue 规范
42+
43+
1. 组件规范
44+
- 使用 `<script setup>` 语法
45+
- Props 必须定义类型
46+
- 使用 defineProps 和 defineEmits
47+
- 避免使用 this
48+
49+
2. 模板规范
50+
- 使用 kebab-case 命名属性
51+
- 使用 v-bind 简写
52+
- 使用 v-on 简写
53+
- 合理使用指令
54+
55+
3. 样式规范
56+
- 使用 scoped 样式
57+
- 遵循 BEM 命名
58+
- 使用 CSS 变量
59+
- 避免使用 !important
60+
61+
## 测试规范
62+
63+
1. 单元测试
64+
- 使用 Vitest
65+
- 测试文件与源文件同名
66+
- 使用 describe 和 it 组织测试
67+
- 测试用例命名清晰
68+
69+
2. 测试覆盖
70+
- 核心功能 100% 覆盖
71+
- 边界情况必须测试
72+
- 异常情况必须测试
73+
- 保持测试代码简洁
74+
75+
## Git 规范
76+
77+
1. 提交信息
78+
- 使用 commitlint
79+
- 遵循 Conventional Commits
80+
- 提交信息清晰明确
81+
- 关联 issue 编号
82+
83+
2. 分支管理
84+
- 主分支:main
85+
- 开发分支:dev
86+
- 功能分支:feature/*
87+
- 修复分支:fix/*
88+
89+
## 构建规范
90+
91+
1. 构建配置
92+
- 使用 Vite 构建
93+
- 配置合理的构建目标
94+
- 优化构建性能
95+
- 处理资源文件
96+
97+
2. 发布流程
98+
- 版本号管理
99+
- 更新日志
100+
- 构建检查
101+
- 发布确认
Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
---
2+
description:
3+
globs:
4+
alwaysApply: false
5+
---
6+
# 组件开发规范
7+
8+
## 组件目录结构
9+
10+
每个组件应该遵循以下目录结构:
11+
12+
```
13+
packages/ui/src/components/[ComponentName]/
14+
├── src/
15+
│ ├── [ComponentName].vue # 组件主文件
16+
│ ├── [ComponentName].ts # 组件类型定义
17+
│ └── [ComponentName].less # 组件样式
18+
├── __tests__/ # 测试文件
19+
└── index.ts # 组件入口文件
20+
```
21+
22+
## 组件开发规范
23+
24+
1. 命名规范
25+
- 组件名使用 PascalCase
26+
- 文件名与组件名保持一致
27+
- Props 和 Events 使用 camelCase
28+
29+
2. 类型定义
30+
- 必须使用 TypeScript
31+
- 为所有 props 定义类型
32+
- 导出组件类型定义
33+
34+
3. 样式规范
35+
- 使用 Less 预处理器
36+
- 遵循 BEM 命名规范
37+
- 使用 CSS 变量实现主题定制
38+
39+
4. 文档规范
40+
- 组件必须包含使用说明
41+
- 提供 Props 和 Events 文档
42+
- 包含使用示例
43+
44+
## 最佳实践
45+
46+
1. 组件设计
47+
- 保持组件的单一职责
48+
- 提供合理的默认值
49+
- 支持主题定制
50+
- 考虑可访问性
51+
52+
2. 性能优化
53+
- 合理使用 v-show 和 v-if
54+
- 避免不必要的计算属性
55+
- 使用 v-memo 优化渲染
56+
- 合理使用异步组件
57+
58+
3. 测试要求
59+
- 编写单元测试
60+
- 测试组件的主要功能
61+
- 测试边界情况
62+
- 测试用户交互
63+
64+
## 发布流程
65+
66+
1. 版本管理
67+
- 遵循语义化版本
68+
- 使用 changesets 管理版本
69+
- 更新 CHANGELOG.md
70+
71+
2. 构建发布
72+
- 运行 `pnpm build` 构建
73+
- 使用 `pnpm publish:ui` 发布
74+
- 确保文档同步更新
Lines changed: 111 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,111 @@
1+
---
2+
description:
3+
globs:
4+
alwaysApply: false
5+
---
6+
# 自定义指令开发规范
7+
8+
## 目录结构
9+
10+
```
11+
packages/directives/src/
12+
├── directives/ # 指令目录
13+
│ ├── [directive]/ # 具体指令
14+
│ │ ├── index.ts # 指令实现
15+
│ │ └── types.ts # 类型定义
16+
│ └── index.ts # 指令导出
17+
├── types/ # 通用类型定义
18+
└── index.ts # 主入口文件
19+
```
20+
21+
## 开发规范
22+
23+
1. 命名规范
24+
- 指令名使用 kebab-case
25+
- 文件名使用 kebab-case
26+
- 类型名使用 PascalCase
27+
- 保持命名语义化
28+
29+
2. 类型定义
30+
- 为指令参数定义类型
31+
- 为指令钩子函数定义类型
32+
- 导出类型定义
33+
- 使用 TypeScript 类型推导
34+
35+
3. 指令实现
36+
- 实现必要的钩子函数
37+
- 处理指令参数
38+
- 处理指令更新
39+
- 清理指令副作用
40+
41+
4. 文档规范
42+
- 说明指令用途
43+
- 描述参数和修饰符
44+
- 提供使用示例
45+
- 说明注意事项
46+
47+
## 最佳实践
48+
49+
1. 指令设计
50+
- 保持指令功能单一
51+
- 提供合理的默认值
52+
- 支持参数配置
53+
- 考虑性能影响
54+
55+
2. 性能优化
56+
- 避免不必要的更新
57+
- 优化事件监听
58+
- 及时清理资源
59+
- 使用防抖/节流
60+
61+
3. 错误处理
62+
- 参数类型检查
63+
- 异常情况处理
64+
- 提供错误提示
65+
- 优雅降级处理
66+
67+
## 使用示例
68+
69+
```typescript
70+
// 指令定义
71+
const vMyDirective = {
72+
mounted(el, binding) {
73+
// 指令挂载时的处理
74+
},
75+
updated(el, binding) {
76+
// 指令更新时的处理
77+
},
78+
unmounted(el) {
79+
// 指令卸载时的处理
80+
}
81+
}
82+
83+
// 使用指令
84+
<div v-my-directive:arg.modifier="value"></div>
85+
```
86+
87+
## 测试规范
88+
89+
1. 单元测试
90+
- 测试指令挂载
91+
- 测试指令更新
92+
- 测试指令卸载
93+
- 测试参数处理
94+
95+
2. 集成测试
96+
- 测试与其他组件交互
97+
- 测试性能影响
98+
- 测试边界情况
99+
- 测试错误处理
100+
101+
## 发布流程
102+
103+
1. 版本管理
104+
- 遵循语义化版本
105+
- 使用 changesets 管理版本
106+
- 更新 CHANGELOG.md
107+
108+
2. 构建发布
109+
- 运行 `pnpm build` 构建
110+
- 使用 `pnpm publish:directives` 发布
111+
- 确保文档同步更新

0 commit comments

Comments
 (0)