モノレポ構成であれば root ディレクトリに.git
ディレクトリを作るので、サブディレクトリの/frontend
側から husky を走らせたいとき.git
への参照が取得できず失敗する。
├── /frontend
│ ├── ...
│ └── package.json
└── /backend
├── ...
└── package.json
普通に cd する。
/frontend で実行
yarn add -D husky lint-staged
{
...
"scripts": {
"prepare": "cd .. && husky install frontend/.husky"
},
...
}
yarn install
// どちらでも
yarn prepare
npx husky add .husky/pre-commit "cd frotnend && npx lint-staged"
/frontend
├── .husky
│ ├── .gitignore
│ ├── _
│ │ └── husky.sh
│ └── pre-commit
└── package.json
.husky/pre-commit
#!/bin/sh
. "$(dirname "$0")/_/husky.sh"
cd frontend && npx lint-staged
workspace 機能を使う。
{
...
"name": "frontend",
"scripts": {
"prepare": "cd .. && husky install frontend/.husky",
"lint-staged": "lint-staged"
},
...
}
npx husky add .husky/pre-commit "yarn workspaces frontend run lint-staged"
.husky/pre-commit
#!/bin/sh
. "$(dirname "$0")/_/husky.sh"
yarn workspaces frontend run lint-staged
.git と package.json が同一ディレクトリにいないプロジェクトで husky をつかう
[husky 6.x] Custom directory で pre-commit する