Git の Hook を扱う husky というライブラリがあり、大変お世話になっていた。が、 v5 が登場してから、設定変更を余儀なくされた。
v4 とは大きく異なる設計思想のため、私達は今まで書いていた設定ファイルを変え、 .husky
ディレクトリを作成し、 husky のコマンドドキュメントを読んで、確認した。
正直 husky v5 のこの変更には失望した。もちろん正当な理由が合ったのだとは思うが、このようなツールの設定変更に時間を取られたくないと思った。このようなツールにはドキュメントが存在しないくらいの方がちょうどいいと思った。なんでこんな大きなドキュメントがあるのか不思議に思った。
なんか同僚の PC で pre-commit フックが動いてないっぽい。そんでコードがフォーマットされてなくてイライラする。 OSS にプルリクくれる人にも申し訳ない。
しかも husky の変更は個人的に改悪だと思った。 .husky
ディレクトリを作成したり、 husky install
で何が行われるのか? .husky
の中にある謎のファイル _
は何なのか?
しかも、 Husky は 勝手に .git/config を変更するから、他のツールと併用すると面倒なことになりそう。
自分はただ単に git commit
の前に Prettier を実行したいだけなのに、なぜこんなことになってしまったんだ。
そこで見つけたのが simple-git-hooks
超かんたん。基本これで終わり。
yarn add -D simple-git-hooks
"scripts": {
"prepare": "simple-git-hooks"
},
"simple-git-hooks": {
"pre-commit": "npx lint-staged"
}
あーもうこれで生きてくわ。これで良い。これだけで良い。
ちなみに husky から移行する時は、下記コマンドを実行して husky が 勝手に 変更した Git の設定をもとに戻そう。
yarn remove husky
rm -rf .husky
git config core.hooksPath .git/hooks/