Cursor - Rules
规则介绍
Rules是给Cursor AI功能(规则适用于 Chat和 Cmd K)生成结果添加规则和限制,让 AI 生成的代码贴合团队规范,减少人工二次修改成本,主要的作用如下:
- 可约束代码风格(如强制用驼峰命名、要求函数必须写注释 )
- 能限定技术选型(如禁止使用某老旧库、优先用项目指定工具类 )
- 提前指定核心参数(如提前设置连接数据库的地址和账号密码等)
Rule主要的配置方案有两种:
| 维度 | 项目规则(Project Rules) | 用户规则(User Rules) |
|---|---|---|
| 作用范围 | 仅对当前项目生效,团队成员共享相同规则 | 对所有项目生效,个人专属配置 |
| 存储位置 | 项目根目录下的 .cursor/rules/随意.mdc 文件 | 用户配置目录(如 ~/.cursor/rules) |
| 同步方式 | 随项目代码提交到版本库(如 Git),团队共享 | 仅本地生效,不随项目同步 |
| 适用场景 | 统一团队编码规范(如函数注释格式、依赖版本) | 个人习惯(如快捷键、AI 响应风格) |
项目规则配置
项目下创建规则文件
- 创建文件夹自定义文件
项目/.cursor/rules/随意命名.mdc - 快捷命令方式创建
Ctrl + Shift + P> “New Cursor Rule”
- 创建文件夹自定义文件

编写项目规则文件
--- description: "团队前端项目规范" priority: 1000 --- # 代码风格 1. 函数必须包含 JSDoc 注释 2. 禁止使用 `var`,统一用 `const`/`let` 3. 函数命名必须添加 zwf_前缀, 例如:zwf_login # 依赖管理 - 优先使用项目内已有的工具函数(如 `utils/request`) - 禁止引入低版本的 lodash(<4.0.0)项目规则文件生效测试
准备一个main.js文件
进入ctrl + k
内联生成函数,查看是否规则生效
生成两个方法一个登录一个注册!
项目规则生效效果展示

用户规则配置
用户规则在cursor settings > rules中定义。
添加规则内容即可

- 用户规则不支持 MDC,它们只是纯文本。
mdc语法了解
Cursor 的 MDC(Markdown with Cursor)语法是专门为编写项目规则设计的轻量级格式,它结合了 Markdown 的可读性和元数据配置能力。接下来,我们来说明下mdc文件语法。
MDC 文件组成部分:
- 前置元数据(Frontmatter)
- 用
---包裹的 YAML 格式配置 - 定义规则的基本属性(如作用范围、优先级)
- 用
- 规则内容(Markdown 正文)
- 用 Markdown 语法写具体规则
前置元数据
---
# 官方约定字段(推荐用,AI 更易理解)
description: "前端项目规则"
globs: "src/**/*.tsx"
priority: 1000
# 自定义字段(自己或团队约定含义)
author: "技术团队"
review_date: "2025-06-04"
special_rule: "仅周一至周五生效"
---
常用元数据字段
| 字段 | 作用 | 示例 |
|---|---|---|
description | 描述规则用途,指导 AI 如何应用规则 | "前端组件编码规范" |
globs | 指定规则生效的文件范围(支持 glob 语法) | "src/**/*.{js,ts,jsx}" |
priority | 规则优先级(数值越大越优先),解决规则冲突 | 1000 |
version | 规则版本号(可选) | "1.0.0" |
规则内容(Markdown 正文)
用 Markdown 的标题、列表、代码块等语法写具体规则,常见结构:
代码风格规则(最常用)
# 一、代码风格
1. 函数必须包含 JSDoc 注释
- 至少包含 `@param` 和 `@return` 描述
2. 变量命名必须使用驼峰命名法(camelCase)
3. 每行代码长度不超过 120 个字符
# 二、技术选型
- 禁止直接使用原生 fetch,必须通过项目封装的 request 工具
- 优先使用 React Hooks 而非 Class 组件
安全约束规则
# 安全规范
1. 禁止使用 eval() 函数
2. SQL 查询必须使用参数化查询,防止注入攻击
3. 敏感信息(如 API 密钥)必须从环境变量读取
特殊语法:引用项目文件
用 @file 引用项目内的配置文件,让 AI 参考:
# 工具链配置
1. ESLint 规则必须符合 @file .eslintrc.js
2. 测试用例必须遵循 Jest 框架规范
完整示例(TypeScript 项目规则)
---
description: "TypeScript 项目编码规范"
globs: "src/**/*.ts"
priority: 1000
---
# 一、基础规范
1. 所有文件必须使用 UTF-8 编码
2. 统一使用 2 空格缩进
# 二、类型约束
1. 禁止使用隐式 any 类型
- 示例:`const num: number = 123`(显式)
- 禁止:`const num = 123`(隐式)
2. 接口命名必须以 `I` 开头(如 `interface IUser`)
# 三、项目约束
- 所有 HTTP 请求必须通过 @file src/utils/request.ts 封装的工具
- 状态管理必须使用 Redux Toolkit,禁止直接修改 state
