← ClaudeAtlas

generate-frontend-lint-configlisted

產生或補齊前端 Lint 設定(Prettier + ESLint Flat Config),統一格式化與程式碼品質規則,保留既有自訂偏好。
CloudyWing/ai-dotfiles · ★ 0 · Code & Development · score 76
Install: claude install-skill CloudyWing/ai-dotfiles
# 產生或補齊前端 Lint 設定 ## 範本來源 本 Skill 同時管理兩個檔案,各自以對應範本為單一來源: | 目標檔案 | 範本來源 | | --- | --- | | `.prettierrc.json` | `~/.ai-agents/templates/.prettierrc.json` | | `eslint.config.js` | `~/.ai-agents/templates/eslint.config.js` | 修改建議規則時,**只改範本檔,不改 SKILL.md**。SKILL.md 僅描述執行流程。 範本檔以 Vue 3 + TypeScript 專案為設計基準。若目標專案是純 JS、React、Svelte 等其他技術棧,產生後需手動調整 `eslint.config.js`,本 Skill 會在後續提醒中說明。 ## 適用前提 本 Skill 假設目標專案: - 是前端專案(存在 `package.json`,且依賴含 `vue`、`react`、`svelte`、`typescript` 其中之一,或目錄存在 `*.vue`、`*.ts`、`*.tsx`、`*.jsx`)。 - 使用 ESLint 9+(Flat Config)。若專案還在 ESLint 8 以下且使用 `.eslintrc.*`,本 Skill **不自動轉換格式**,僅產生 `eslint.config.js` 並提醒使用者手動處理舊版設定。 不符合前提時,告知使用者後流程終止。 ## 執行步驟 ### 1. 偵測專案環境 掃描目標專案: 1. 確認是否存在 `package.json`。 2. 從 `package.json` 的 `dependencies` / `devDependencies` 判斷主要框架(Vue / React / Svelte / 純 TS)。 3. 確認是否已存在 `.prettierrc*` 或 `eslint.config.*` / `.eslintrc.*`。 ### 2. 讀取範本與既有設定 1. 讀取 `~/.ai-agents/templates/.prettierrc.json` 與 `~/.ai-agents/templates/eslint.config.js`。 2. 若目標專案已存在對應檔案: - 完整讀取現有內容。 - 識別使用者已自訂的規則(如刻意設定的 `printWidth`、特定 `rules` 等)。 - 後續步驟僅**補齊範本中有、現有檔案中缺少的規則**,不覆蓋已有設定。 3. 若不存在,後續步驟以範本內容為基底建立全新檔案。 ### 3. 衝突偵測 對 Prettier 與 ESLint 各自比對既有規則與範本規則: **Prettier 衝突項**:同一鍵但值不同(如現有 `tabWidth: 2`、範本為 `4`)。 **ESLint 衝突項**: - 既有 config 已 `extends` / 引入某 plugin,但範本指定不同版本或不同 plugin。 - 既有 `rules` 區塊中與範本同名但設定值不同。 對每個衝突點,提供**最小變更方案**:優先保留使用者已設定的值,僅補齊完全缺少的規則。 若衝突點超過 3 個,在進入步驟 4 前先列出衝突清單,讓使用者決定哪些保留、哪些覆蓋。 特別注意:既有檔案的 `extends` 順序與 plugin 載入順序對 ESLint Flat Con