【Other】使用 husky + lint-staged 來規範 commit file
本篇 會介紹常見的統一程式碼風格的套件,並且使用 husky + lint-staged 來讓每次 commit 都會自動執行格式化程式碼的動作。
套件介紹
ESLint
ESLint 是一個 JavaScript 的 Linter,可以用來檢查程式碼是否符合 JavaScript 的規範,並且可以自訂規則。
npm init @eslint/config
上面的指令會透過問答的方式來產生 .eslintrc.js
設定檔,大部分會用到的像是使用什麼框架,或是有沒有用 typescript 都有考慮進去。
提示
如果是使用建置套件,像是 Vite 或 Next.js 都已經有內建設定好的 ESLint 可以使用,就不用再另外安裝。
ESLint 的設定檔主要有幾個項目:
- Environments:專案是在哪個環境做執行,較常會設定
node: true
允許使用module.exports
。 - Parser Options:eslint 解析器的設定。
- Plugins:引入的第三方套件。
- Rules:客製化 ESLint 規則。
- Extends:擴充其他設定檔。
- Globals:定義全域變數,避免 eslint 報錯,像是 window 或 document。
- Overrides:針對特定檔案的設定。
比較常會客製化的是 Rules,可以參考 ESLint Rules。
如果特定檔案不想使用 eslint,可以新增 .eslintignore
檔案,並在裡面寫上不想要使用 eslint 的檔案路徑。
Prettier
Prettier 是一個程式碼格式化的工具,可以幫助我們統一程式碼的風格,並且可以自訂規則。
npm install prettier --save-dev --save-exact