🕵️

huskyをモノレポに導入する

2022/01/22に公開

初めに

皆さんこんにちは。株式会社プラハのアイドルヲタクエンジニアです。
今日はみなさんの開発体験を少しだけ良くするために、huskyの使い方を紹介します。
簡単に導入できるので、ぜひ試してみてください!

やりたいこと

  • モノレポのGitプロジェクトにhuskyを導入したい。
  • ビルドが通らない場合はコミットを禁止とする。

今回は以下のプロジェクトを使って実装してみました。
https://github.com/wooootack/monorepo-husky

やってみる

早速やってみましょう!

huskyのインストールと初期設定

今回の方法では、huskyはプロジェクトのルートにインストールします。

npm init
npm install husky --save-dev
npx husky install

次に、プロジェクトルートにある package.jsonに以下の設定を追加します。

"scripts": {
  "prepare": "husky install"
}

これによって、他の人もnpm installをするだけで自動的にHooksが有効になります。

チェックしたい内容の追加

今回はコミットされる前にビルドが通ることを確認したいので、以下のようにコマンドを入力します。

npx husky add .husky/pre-commit "npm run build"

以下のようなファイルが出力されます。

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

npm run build

この状態では、npm run build がルートディレクトリで実行されてしまうため、うまく動作しません。
それぞれのプロジェクトで実行されるように変更します。

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

cd `pwd`

cd back
npm run build
cd ..

cd front
npm run
cd ..

これで git commit を実行すると、事前にチェックが走るようになりました!

参考

https://typicode.github.io/husky/#/

GitHubで編集を提案
PrAha

Discussion