はじめに
git commit
をした際にeslint --fix
とprettier --write
を実行する方法について記載します。
パッケージのインストール
以下のコマンドを実行してhusky
およびlint-staged
をインストールします。
ターミナル
$ yarn add -D husky lint-staged
lint-staged
の設定
lint-stagedの設定をします。
package.json
に以下のように記述することでステージングしたファイルに対しコマンドを実行できます。
package.json
"lint-staged": {
"*.{js,jsx,ts,tsx}": [
"eslint --fix",
"prettier --write"
]
},
Git hooks
を有効化
以下コマンドを実行してGit hooks
を有効化します。
ターミナル
yarn husky install
git clone
してパッケージをインストールした際にGit hooks
を有効化するため、package.json
にprepare
を記述します。
yarn2以降を使用している場合にはprepare
は使用でないのでpostinstall
を記述します。
package.json
"scripts": {
"prepare": "husky install"
},
package.json
"scripts": {
"postinstall": "husky install"
},
hooks
を作成
以下のコマンドを実行してhooks
を作成します。
ターミナル
$ yarn husky add .husky/pre-commit "npx lint-staged"
実行すると.husky
ディレクトリにpre-commit
ファイルが作成されます。
#!/usr/bin/env sh
. "$(dirname -- "$0")/_/husky.sh"
npx lint-staged
確認
正常に動作する確認します。
ターミナル
$ git add .
$ git commit -m "test"
✔ Preparing lint-staged...
✔ Hiding unstaged changes to partially staged files...
✔ Running tasks for staged files...
✔ Applying modifications from tasks...
✔ Restoring unstaged changes to partially staged files...
✔ Cleaning up temporary files...
[main bf38a3f] test
1 file changed, 1 insertion(+), 1 deletion(-)