toplenboren/simple-git-hooks: A simple git hooks manager for small projects
simple-git-hooks は JavaScript 製の Git フックライブラリです。具体的には Git でコミットする直前、プルした直後などに自動で実行されるプログラムを楽に定義してくれます。このライブラリの特筆すべき点は package.json にパパっと書くだけで処理内容を実装できる点です。複雑な処理を書くのには向いていませんがコードの整形等を走らせたいだけ、の様な軽い処理について特に便利です。
例えば、次の様に記述することでコミットの直前に lint-staged(git add でステージングされているファイルに linter をかけるためのライブラリ)を実行できます。
okonet/lint-staged: 🚫💩 — Run linters on git staged files
# package.json { "simple-git-hooks": { "pre-commit": "npx lint-staged", } }
この様に便利な simple-git-hooks ですが、上述の package.json に記述された simple-git-hooks 内の処理を書き換えた場合、いちいちnpx simple-git-hooks
とコマンドを実行する必要があります。これはいささか手間です。次の様にすることでこの手間を省けます。
# package.json { "scripts": { "pre-commit": "npx lint-staged", }, "simple-git-hooks": { "pre-commit": "npm run pre-commit", } }
simple-git-hooks には packge.json に定義した pre-commit というスクリプトを走らせるという定義のみ記述し、具体的な処理は scripts の pre-commit の方に記述します。こうすることで一々npx simple-git-hooks
とコマンドを実行せずとも scripts の方を変更するのみで Git フックの処理内容を書き換えられます。