上週面試的時候,面試官突然問我:“你用過 Cursor 對吧,那你知道 rules 嗎?”
當時小愛一愣,把問題聽成了 Cursor 的弱勢,本來一張嘴就要編了,結果被面試官及時制止,強行糾正了下發音。
沒事,不明白咱可以學。面試完了,小愛同學就去了解了這個點。
Cursor Rules 也就是Cursor 規則,本質上就是一組“開發規範/約束提示”,告訴 AI 在幫你寫程式碼、生成文件時要遵守的規則。類似於你在寫 prompt,但它是持久的,全局生效。
Cursor Rules 有兩種類型:全局規則(User Rules)、專案規則(Project Rules),全局適用於所有專案,專案則只對指定的生效。
在日常開發裡,你可能遇到過這些問題:
/components
目錄,API 請求要放到 api.ts
,但 AI 一不小心就寫到別的地方)如果沒有規則,AI 可能會:
有了 Rules,就能在源頭上減少這些麻煩。
在 Cursor Settings 的面板中可以直接配置,這邊一般是設定 Cursor 用中文回覆我們。
Cursor 會在專案根目錄下生成一個 .cursor
文件夾,我們需要在這個文件夾下的 rules
文件夾中新建一個包含 rules 的配置文件,內容格式為 Markdown
語法。
目前包含四種應用方式:
模式 | 含義 | 觸發方式 | 使用場景 |
---|---|---|---|
always | 始終生效 | 無論什麼情況都會應用 | 比如:所有程式碼都必須用 TypeScript,不允許 any |
auto attached | 自動附加 | Cursor 在檢測到相關上下文時自動加載 | 比如:打開 api/ 目錄下的文件,就自動應用“必須用 fetch”規則 |
agent requested | 智能體請求時附加 | 當 AI Agent(助手)判斷需要用到某個規則時才應用 | 比如:AI 在寫 React 程式碼時才會附加 “用函數組件,不要 class 組件” |
manual | 手動啟用 | 需要用戶在規則面板裡手動點選 | 比如:某些臨時實驗性規則,預設不啟用,偶爾才開 |
編寫一個專案的 rules 主要有以下幾方面需要注意:
以下是一個rules 示例:
# 專案背景
這是一個在線旅遊攻略分享平台,前端使用 React + TypeScript + TailwindCSS,
後端提供 RESTful API。目標是讓用戶能快速分享和瀏覽旅遊日記。
# 編碼標準
- 所有程式碼必須使用 TypeScript,不允許使用 JavaScript。
- 變數命名統一使用 camelCase。
- React 組件必須使用 PascalCase。
- 自定義 Hooks 必須以 `use` 開頭。
# 库和框架約束
- 必須使用 React 18,不要用 React 19 新特性。
- 樣式必須使用 TailwindCSS,不要寫內聯 style。
- 網路請求必須使用 `fetch`,不允許用 axios。
# 文件結構
- 業務組件放在 `src/components` 下。
- API 調用必須封裝在 `src/api` 下。
- 所有頁面文件放在 `src/pages` 下。
- 公共工具函數放在 `src/utils` 下。
# 文檔規範
- 導出的 API 方法必須寫 JSDoc 註解。
- 複雜邏輯的 Hooks 必須寫註解,說明參數和返回值。
- 每個頁面組件文件頂部必須有模組說明註解。
# 安全規範
- 不要把明文 API Key、token 寫在程式碼裡。
- 所有配置從 `.env` 裡讀取,透過 `process.env` 使用。
另外可以參考 awesome-cursorrules,當然還可以輸入 /Generate Cursor Rules
讓系統自動生成規則。