💡
【husky v9対応】yarn husky installで`install command is deprecated`になる
はじめに
他の方の過去記事を参考にhuskyとlint-stageのセットアップを試したところ、そのまま実行すると以下のようにうまくいきませんでした。公式のリリース記事を確認すると、huskyのv8以前とv9でコマンド等が大幅に変わったようなので、v9でのセットアップ方法についてまとめたいと思います。
$ yarn husky install
yarn run v1.22.21
$ /hoge/node_modules/.bin/husky install
install command is deprecated
✨ Done in 0.46s.
# 実行しても.huskyが作成されない
動作環境
- yarn : v1.22.21
- husky : v9.0.10
huskyのインストール
ターミナル
# yarn
$ yarn add --dev husky
# npm
$ npm install --save-dev husky
初期化
init
コマンドで.husky/pre-commit
スクリプトの作成とpackage.json
の設定まで行ってくれます。
ターミナル
$ yarn husky init
.husky/pre-commit
+ yarn test
package.json
{
...
"scripts": {
+ "prepare": "husky"
},
...
}
pre-commitスクリプトの編集
設定したいスクリプトをターミナルまたはエディタで直接編集します。
ターミナル
$ echo "yarn lint-staged" > .husky/pre-commit
.husky/pre-commit
- yarn test
+ yarn lint-staged
🎉セットアップ完了
以上でセットアップ完了です。pre-push
フックなども作成したい場合は手動でファイルを作成してください。
[補足]プロジェクトが.git直下でない場合(モノレポ構成など)
モノレポ構成などでhuskyを実行したいパッケージが.git
直下にない場合はyarn husky init
後、以下の手順で設定します。
.
├── .git/
├── backend/
└── frontend/
├── .husky/
└── package.json
package.jsonのスクリプトを編集
package.json
{
...
"scripts": {
- "prepare": "husky"
+ "prepare": "cd .. && husky frontend/.husky"
},
...
}
pre-commitスクリプトを編集
frontend/.husky/pre-commit
- yarn test
+ cd frontend && yarn lint-staged
参考
Discussion