lint-staged
pre-commit フック中にステージングされたファイルに対してスクリプトを実行するツール
セットアップ
インストール
code:sh
$ npm install --save-dev lint-staged
package.json の修正
lint-staged セクションを追加し、グロブパターン とステージングされたファイルに対して実行するコマンドのリストをマッピングする code:package.json
{
...
"lint-staged": {
"*.{js.cjs,ts,tsx}": [
"vitest related --run",
"eslint --fix",
"stylelint --fix",
"prettier --write"
]
}
...
}
vitest related はステージングされたファイルの依存ツリー内にあるテストだけを実行する
.husky/pre-commit の修正
コマンドを npx-lint-staged に置き換える
code:sh
. "$(dirname -- "$0")/_/husky.sh"
npx lint-staged
Commit して Push する
グロブパターンに引っかからない場合
pre-commit フックはスキップされる
code:sh
$ git commit -a -m ":wrench: Use lint-staged to optimize pre-commit hook"
→ No staged files match any configured task.
グロブパターンに引っかかる場合
pre-commit フックが実行される
code:sh
$ git commit -a -m ":wrench: Add comment to Carousel component"
✔ Preparing lint-staged...
✔ Running tasks for staged files...
✔ Applying modifications from tasks...
✔ Cleaning up temporary files...