simple-git-hooksを使用してGitフックを設定し、コミット時にLintやフォーマッターを自動で実行する仕組みにしようと思った。
設定したものの、フックが正常に動作しない問題に直面したので記録します。
前提
使用ツール: Git, Yarn, simple-git-hooks, lint-staged
プロジェクト構成: モノレポ構成で、frontとapiディレクトリがあり、frontディレクトリ内にLintやフォーマッターの設定が含まれています。
目的: コミット時にlint-stagedを実行し、コードの自動チェックを行う。
内容
frontディレクトリ内のpackage.jsonに必要な記述を行い、試しにコミットを実行したところ下記のエラー文が。
npm ERR! Missing script: "lint-staged"
結論、プロジェクトルートでsimple-git-hooksをインストールしていなかったことが原因だった。
ディレクトリ構成
project
|-api
|-front
docker-compose.yml
frontディレクトリにsimple-git-hooksをインストールすればいいと思っていたが、ルートで実行されるものなのでルートにインストールする必要があった。
インストール後、無事にコミットが成功しリントチェックも機能していたことを確認できた。