開発メンバー内で、開発環境をローカルで立てるか、Dockerにするかなど、分かれることがあるかもしれません。(本当は統一すべきと思いますが、あまりローカル環境を汚したくないとか、Docker 遅いとかあるので)
そうした時、pre-commit などで prettier などを実行している場合、環境によって多少コマンドが変わってくるかと思います。
環境が異なっても、pre-commit などで正しくコマンドを実行して欲しい問題の解決法を記載します。
解決方法
-
.env
ファイルで、Docker を利用しているか否かを記載する - pre-commit で実行されるコマンドを、 .env の内容に応じて場合分けしてあげる
.env を設定する
.env
DOCKER_ENABLE=false
pre-commit の script の変更
- husky v6 の記載になります。
.husky/pre-commit
#!/bin/sh
. "$(dirname "$0")/_/husky.sh"
. "$(dirname "$0")/../.env"
if "${DOCKER_ENABLE}"; then
docker run --rm -v $CWD:ボリュームするディレクトリ イメージ名 yarn format
exit -1
fi
yarn format
これで、Docker を利用する場合はコンテナ上で format を、
利用していない場合は、ローカルで format を実行できます。
もっと良いやり方はあるかもしれませんが、ひとまずこれで解決はできそうです。