階段 7 · 確保品質(測試與檢查)

Lint

自動檢查程式碼格式、潛在錯誤與團隊規則。

先用一句話理解

自動檢查程式碼格式、潛在錯誤與團隊規則。

打個比方

像文書校對,先抓錯字與基本格式問題。

什麼時候會遇到

提交前、CI/CD、多人協作時。

再往深一點看

Lint 是由 ESLint 這類工具自動掃描程式碼,針對「未使用的變數」、「忘記加 dependency array 的 useEffect」、「沒有處理 Promise 的 await」等常見問題發出警告或錯誤。和 typecheck 不同,lint 不只看型別,還會執行一套可自訂的規則——例如禁止用 console.log 進 production、強制所有 React 元件都要有 key 屬性、或強制 import 順序整齊。Lint 的規則可以靜默通知(warning)也可以設成阻斷合併(error),後者搭配 CI 才能真正把關。Prettier 通常和 ESLint 搭配使用,但分工不同:ESLint 抓邏輯與規則問題,Prettier 只管縮排、引號、換行等純格式問題。

舉個例子

你的 React 元件裡有一個 useEffect 忘記在 dependency array 加某個變數,ESLint 的 react-hooks/exhaustive-deps 規則會立刻標紅。把 npm run lint 設進 GitHub Actions,每次 PR 都會自動跑,有 lint error 就阻止合併,不需要 reviewer 人工審每一行格式問題。

常見誤解

  • - 把 lint 全設成 warning 而不是 error,開發者習慣無視警告,幾個月後 CI 輸出幾百條 warning 但大家都不在乎,lint 形同虛設。
  • - 只在本機偶爾手動跑 lint,沒有加進 CI 流水線,導致不同人的程式碼風格差異越來越大,code review 時浪費時間討論格式問題。
  • - 把 eslint-disable 或 // eslint-disable-next-line 當成解法,真正的問題(例如缺少 key、錯誤的 hooks 用法)被蓋掉而非修好,留下潛在 bug。

相關名詞

相關服務

GitHub

相關工具