Cursor Rules是一套强大的配置系统,让你能够自定义AI代码辅助的行为。通过创建.mdc文件,你可以告诉AI遵循特定的编程规范、架构模式和项目约定,从而获得更精准的代码建议和帮助。
Cursor Rules是一种配置机制,允许你为AI提供持久性的上下文和指导。它解决了AI模型无法在会话间保持记忆的问题,通过规则文件为不同的项目场景提供针对性的指导。
Cursor支持四种不同类型的规则,每种都有不同的触发条件和使用场景:
这类规则会在所有AI交互中自动加载到上下文中。
---
description:
globs:
alwaysApply: true
---
使用TypeScript严格模式
总是使用const而不是let,除非变量需要重新赋值
遵循项目的命名约定
当你在聊天中附加或提到匹配特定模式的文件时,这类规则会自动激活。
---
description:
globs: src/**/*.tsx,src/**/*.jsx
alwaysApply: false
---
React组件开发规范:
- 使用函数组件而不是类组件
- 使用TypeScript接口定义Props
- 组件文件名使用PascalCase
AI会根据描述判断是否需要使用这个规则。需要提供清晰的描述。
---
description: 编写或修改API端点时使用的验证规则
globs:
alwaysApply: false
---
API开发规范:
- 所有端点必须使用Zod进行输入验证
- 返回统一的错误格式
- 包含适当的HTTP状态码
只有当你在聊天中明确提到这个规则时才会激活。
---
description:
globs:
alwaysApply: false
---
数据库操作模板:
- 使用事务处理敏感操作
- 实现适当的错误处理和回滚
- 包含操作日志记录
Ctrl+Shift+J
或 Cmd+Shift+J
).cursor/rules
文件夹.mdc
扩展名的文件💡 命名建议
使用数字前缀来控制规则优先级:001-099(核心规则)、100-199(集成规则)、200-299(模式规则)
---
description: React组件开发标准和样式指南
globs: src/components/**/*.tsx
alwaysApply: false
---
前端组件开发规范:
## 组件结构
- 使用函数组件 + TypeScript
- Props接口定义在组件文件顶部
- 使用默认导出
## 样式规范
- 优先使用Tailwind CSS类
- 复杂动画使用Framer Motion
- 避免内联样式
## 示例模板:
```typescript
interface ComponentProps {
title: string;
children?: React.ReactNode;
}
const Component: React.FC = ({ title, children }) => {
return (
{title}
{children}
);
};
export default Component;
```
---
description: 编写API端点时的验证和错误处理规范
globs: src/api/**/*.ts,src/routes/**/*.ts
alwaysApply: false
---
API开发规范:
## 输入验证
- 使用Zod schema验证所有输入
- 定义完整的类型定义
- 导出生成的TypeScript类型
## 错误处理
- 统一错误响应格式
- 使用适当的HTTP状态码
- 包含详细的错误信息
## 示例:
```typescript
const CreateUserSchema = z.object({
email: z.string().email(),
name: z.string().min(2),
});
type CreateUserRequest = z.infer;
export async function createUser(req: Request) {
try {
const data = CreateUserSchema.parse(req.body);
// 处理逻辑
return { success: true, data: user };
} catch (error) {
return {
success: false,
error: "验证失败",
details: error.issues
};
}
}
```
---
description: 编写或修改测试文件时使用
globs: **/*.test.ts,**/*.spec.ts,src/__tests__/**/*.ts
alwaysApply: false
---
测试编写指南:
## 测试结构
- 使用describe/it的嵌套结构
- 每个测试应该独立且可重复
- 使用清晰的测试描述
## 命名约定
- describe: 描述被测试的功能模块
- it: 描述具体的测试场景
- 使用"should"开头描述期望行为
## 示例:
```typescript
describe('UserService', () => {
describe('createUser', () => {
it('should create user with valid data', () => {
// 测试逻辑
});
it('should throw error with invalid email', () => {
// 测试逻辑
});
});
});
```
你可以在规则中引用其他文件作为额外的上下文:
---
description: 使用项目架构模板
globs: src/**/*.ts
alwaysApply: false
---
项目架构规范:
参考以下模板文件进行开发:
@src/templates/service-template.ts
@src/templates/component-template.tsx
遵循这些模板的结构和模式。
你可以在项目的不同目录中创建特定的规则目录:
project/
.cursor/rules/ # 项目级别规则
frontend/
.cursor/rules/ # 前端特定规则
backend/
server/
.cursor/rules/ # 后端服务特定规则
001-core-typescript.mdc
A:检查以下几点:
.mdc
A:这是已知问题,解决方法:
A:你可以:
A:Cursor的冲突解决机制:
特性 | 用户规则 | 项目规则 |
---|---|---|
作用范围 | 所有项目全局生效 | 仅在当前项目中生效 |
存储位置 | Cursor设置中 | .cursor/rules目录 |
版本控制 | 不支持 | ✅ 支持版本控制 |
团队共享 | 不支持 | ✅ 可团队共享 |
文件引用 | 不支持 | ✅ 支持引用项目文件 |
适用场景 | 个人偏好设置 | 项目特定规范 |
Cursor Rules是一个强大而灵活的系统,可以显著提升AI代码辅助的质量和针对性。通过合理配置规则,你可以:
开始时建议从简单的规则开始,逐步完善和扩展。记住,好的规则应该是清晰、具体且可操作的,这样AI才能提供最有价值的帮助。