章節連結
雖說前端專案本身可以用 husky + lint-staged 來檢查你的 commit 並驅動自動格式化的內容,但在 monorepo 的專案中,可以統一在專案根目錄啟動設定 pre-commit,接著驅動子目錄中內的 package.json 所撰寫好的指令,就可以自動格式化內容。
內容
1. 基本一定要安裝 pre-commit 和 commit-msg hook。https://pre-commit.com/#plugins
2. gitlint hook 用來檢查你的 gitlint 內容,https://github.com/jorisroovers/gitlint
3. 最後要執行 local 端自己的內容,關鍵點是進入點、files 和 exclude 的設置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
default_install_hook_types: - pre-commit - commit-msg repos: # pre-commit-hooks - repo: https://github.com/pre-commit/pre-commit-hooks rev: v4.4.0 hooks: - id: check-yaml - id: trailing-whitespace exclude: ^.*?/.[meta|asset] - id: end-of-file-fixer exclude: ^.*?/.[meta|asset] # gitlint - repo: https://github.com/jorisroovers/gitlint rev: 'v0.19.1' hooks: - id: gitlint stages: - commit-msg args: - --staged - --msg-filename # custom react-lint - repo: local hooks: - id: react-lint name: React Lint language: system entry: bash -c "cd one/cms && pnpm lint" files: ^one/cms/.*\.(ts|tsx|js|jsx)$ exclude: ^one/cms/(node_modules|build)/.*$ |
按讚加入粉絲團