matsutoba’s blog

フロントエンドエンジニアをしています

huskyについて調べた

huskyは、公式サイトによると、「コミットなどを改善します」ということなので、コミットのときに何かしてくれるツールということらしい。

Husky improves your commits and more
typicode.github.io


コミットやプッシュをするときに

  • コードのlintの実行
  • コミットメッセージのlint
  • テストの実行
  • その他、すべてのGitフックの実行

ということができるらしい。

huskyのインストール

公式ドキュメントに沿って Automatic(recommended) にある husky-init を実行してみる。

npx husky-init && yarn 

「.husky/_/pre-commit」というファイルができた。

#!/bin/sh
. "$(dirname "$0")/_/husky.sh"
npm test

ここに「npm test」と書かれているので、git commit を実行したとき、まず npm test が実行される。

lint が実行したい場合は、npm lint や yarn lint を書いておけば良い。

複数のコマンドが実行したければ、改行して順番に書いておけば良い。

Windowsで動くのかという疑問

pre-commitのファイルを見ると、husky.shを実行している。

macでは特に何も考えなくてもそのまま動いたが、Windowsの場合はどうするのか?

When you install Git on Windows, it comes with the necessary software to run shell scripts.
typicode.github.io

ということで、シェルスクリプトが動くソフトが必要なので、WSLを使えば良さそう。

Windows11では wsl –install で ubuntuのインストールが始まりました。