[筆記] Husky 加 lint-stage 守護你的專案 commit 和統一格式碼樣式

Husky 和 lint-stage 的結合,可以讓專案的程式碼和 commit 能夠維持一致的格式,不合的會無法進入版控。這邊筆記下導入方法和注意事項。
github logo


內容

先決條件

你需要先在專案中導入 eslint、 prettier 等統一格式碼樣式的工具,並解決可能的衝突和確認好日後樣式規範。如此一來套用 husky 和 lint-stage 才有完整功效。

步驟

1. 安裝 husky, lint-staged, @commitlint/cli @commitlint/config-conventional,並在 package.json 新增一些指令

2. 輸入 yarn prepare 來初始化 husky。你會在專案根目錄下看到一個 .husky 的文件
3. 基本上要有 pre-commit 和 commit-msg 兩個指令,才能正常運作。所以輸入以下指令來新增內容:

4. 接著你需要在專案根目錄下,新增一個 commitlint.config.js 檔案如下

5. 接著你需要確定 .husky/pre-commit 和 .husky/commit-msg 兩個檔案有「足夠的權限」可以執行,請下以下指令

6. 接著你可以試著加個 commit,接著就會執行自動格式化你的程式碼樣式和確認你的 commit 內容是否合乎規範了。如果不合的話,你會收到錯誤訊息。


FAQ

1. husky 無法執行,出現 hint: The ‘.husky/pre-commit’ hook was ignored because it’s not set as executable.

請確保執行檔有足夠的權限,可用 chmod +x .husky/pre-commit


參考資料

1. Husky – Git Hooks 工具
2. 28 – lint-staged – Lint Git Commit 的檔案
3. 手摸手教你使用最新版husky(v7.0.1)让代码更优雅规范
4. Commitlint 使用总结
5. lint-staged
6. 我的husky不能执行,我不知道为什么?

按讚加入粉絲團

延伸閱讀