在 2023 年的現在,Monorepo 也是種常見的前後端的專案管理方式。由於 husky 搭配 lint-staged 預設是 .git 和 packlage.json 在同一專案根目錄下執行的,因此需要調整一下配置方式。
內容
核心邏輯
1. 調整 husky 的安裝方式,讓其抓到其他層目錄的 .git 和指定位置下的 .husky 位置
2. 修改 .husky 腳本,使其執行時可以切換到正確的 .husky 位置執行 commit-msg 和 pre-commit
3. 透過 npx 執行該前端專案下的套件
程式碼
若你有一個 Monorepo 專案,並在這個目錄下初始化一個 .git。前端專案相關的程式碼是放置在 frontend 資料夾內,裡頭的 package.json 設置了 lint-staged,並另外有安裝 eslint, stylelint 和 prettier。
如果你在專案根目錄中,不想將 .husky 資料夾和其檔案進入版本控制系統,那可用 concurrently 套件來按次序執行指令,生成指定的 .husky 檔案。
參考資料
1. Enforce Git Hooks in Monorepos with Husky – But How?
2. Guide # husky