Open5

husky で pre-commit 時に自動で Lint を実行する

Toshifumi ImanishiToshifumi Imanishi

husky のライセンスについて、オープンソースプロジェクトやスポンサーであれば最新(2020/12/12 現在)の v5 を利用できます。v4 は商用プロジェクトを無料で利用できます。

Toshifumi ImanishiToshifumi Imanishi

husky は下記のコマンドでインストールします。

$ npm install husky --save-dev

package.json に husky の設定を記述できます。

package.json
"husky": {
  "hooks": {
    "pre-commit": "npm test"
  }
}
Toshifumi ImanishiToshifumi Imanishi

lint-staged と組み合わせることで pre-commit 時に自動で Lint を実行してくれます。lint-staged は Git のステージングエリアにあるファイルを対象に Lint を実行します。

Toshifumi ImanishiToshifumi Imanishi

lint-staged は下記のコマンドでインストールします。

$ npm install lint-staged --save-dev

husky と lint-staged を組み合わせる場合、package.json の設定は以下の通りになります。

package.json
"husky": {
  "hooks": {
    "pre-commit": "lint-staged"
  }
},
"lint-staged": {
   "*.js": "eslint --fix"
}