Git で commit 前に 自動でコマンドを実行する #Node.js #husky

commit 前にしたいことは 多いと思います うっかりミスを防ぎましょう

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

Git で commit 前に 自動でコマンドを実行する

commit を hook して 自動でコマンドを実行して
開発の負担を減らす事が目的です

git add my_file.js

# ここのタイミングで自動でコマンド実行

git commit -m 'コミットメッセージ'

対象

Node.js を利用している環境

commit hook 系は各言語で あると思いますので
開発シーンにあったライブラリをご利用ください

python はこちら
- https://dev.classmethod.jp/tool/git/python-git-pre-commit/

環境構築

npm install husky --save-dev

package.json に追記

{
  "scripts": {
   "precommit": "npm test",
  },
  "husky": {
    "hooks": {
      "pre-commit": "precommit"
    }
  }
}

これで commit 前に hook されて
npm test が実行されれます

husky
https://github.com/typicode/husky

おすすめのコマンド

eslint or tslint

開発の規約などを定義して
満たしているかの確認をします
--fix までして問題ないと思います

jest

テストを書いて自動実行

prettier

コードのフォーマットです
eslint と一緒に実行するのがベターです

git secrets

秘密の情報を間違えて流出させないように!!

詳細はこちらを御覧ください

AWSアクセスキーをGitリポジトリに混入させないために git-secrets を導入した

この様に && でつなげて 定義してみてください

"precommit": "git secrets && npm eslint && npm jest",

補足

CI の時でも 可能ですすが ローカルで済ませておくと
戻りも少なくおすすめです

また 作ったコマンドは CI の時も そのまま利用可能
な物が多いのでおすすめです

まとめ

commit 前にしたいことは 多いと思います
うっかりミスを防ぎましょう

precommit は定期的に見直しが必要です

もっといいライブラリなどがあれば
precommitを強化しましょう