Huskyとは
スクリプトを特定のタイミングで実行させるためのツールです。
今回は実際にこちらのプロジェクトをセットアップとしてhuskyを導入していきます。
こちらの記事に記載されているセットアップ手順を使用します。
npx husky-init && yarn
上記を実行すると、package.jsonに下記のようにhuskyが追加されます。
"devDependencies": {
"husky": "^7.0.0"
},
"scripts": {
"prepare": "husky install"
}
こちらのpre-commitというファイルに、npm testというscriptが記載されているのですが、こちらのpre-commitはcommitを行う前に特定のコマンドを実行するための設定を行います。
試しにtestでエラーを起こしてコミットしてみましょう。
"scripts": {
"prepare": "husky install",
"test": "echo \"Error: no test specified\" && exit 1"
}
上記ではtestを実行すると必ずエラーが起きるようにしているのですが、下記のようにエラーが出てコミットに失敗します。
Error: no test specified
npm ERR! Test failed. See above for more details.
husky - pre-commit hook exited with code 1 (error)
今回のセットアップの内容はこちらのコミットで確認できます。テストに関する記載は削除しています。
このようにhuskyを使用することで、commit前に特定の条件を満たしているかどうかをローカルで検証することができるようになるので、チーム開発にはとても便利です。ぜひ試してみてください!
関連記事
こちらのcommitlintはhuskyととても相性がいいです。