作成したNext.jsのプロジェクトにhuskyを用いて以下の機能を追加します。
commit時にESLintを走らせてerrorがあればcommitさせない
push時にJestを走らせてerrorがあればpushさせない
huskyとは
コミットやプッシュの前にテストなどを実行して、失敗したら止めることができる Git hooks を簡単に設定することができるツール。
導入手順
※以下yarnを使用したhuskyの導入についての説明をしていきます。
① lint-stagedの導入
$ npx mrm lint-staged
② NPM スクリプトに追加
package.json
{
"scripts": {
"lint-staged": "lint-staged"
}
}
③husky の追加
$ yarn add -D husky@next
④Git hooks の有効化
$ yarn husky install
⑤package.jsonに追加
package.json
~~
"husky": {
"hooks": {
"pre-commit": "lint-staged",
"pre-push": "yarn test"
}
}
~~
以上です。
動作確認
-
$ git commit -m "<message>"
を入力してESLintが走った様子
もしhuskyが走らなかったら...
.git/hooks
が正常に作成されていない可能性があります。
以下コマンドで確認しましょう。
$ ls -la .git/hooks/ls -la .git/hooks/
.sample
しかなかったら再度huskyをインストールしましょう。
$ yarn remove huksy
参考
https://www.youtube.com/watch?v=R35LJL6a-p0&t=1629s
https://qiita.com/282Haniwa/items/dcce1ba6bb6ae541893e#husky%E3%81%AE%E5%B0%8E%E5%85%A5