技術とかの雑なToday I Learnedメモ

husky と lint-staged の設定をした

husky と lint-staged の設定をした

husky と lint-staged の設定をしたのでメモ。

husky v7とlint-stagedでコミット時にリント実行 – rinoguchi's techlog

  • これを読むとだいたい分かる感じ

husky のバージョンが v7 どころか v8 に

  • Releases · typicode/husky
  • v6 が 2021/03 に出て、そこから v7 が 2021/07 に出るまでわずか 4 ヶ月
  • 2022/05 に v8 が出てる

初期設定の便利コマンド

  • npx mrm@2 lint-staged すると、 husky と lint-staged でいい感じに初期設定ができるっぽい
  • sapegin/mrm: Codemods for your project config files
    • いろんな便利初期設定をいい感じにやってくれるくんっぽい
  • これだと "husky": ">=6""lint-staged": ">=10" なので若干古いけど、インストールされるバージョンは yarn.lock を見たらちゃんと最新だった

初期設定から特に変更しなくてもいい感じに動作してそう

  • package.json に追加された lint-staged の設定だけでわりといい感じに動作しているっぽい
    • eslint --cache --fix が走っている
    • cache オプションは前回の lint をキャッシュして次の変更の lint に対して便利に扱うものらしく、速度アップにつながるみたい
    • .eslintcache は .gitignore に足しておく

初期設定のままだと自分で設定した ESLint / Prettier の設定で動かせない

  • ここが難しそうなところ
  • と思いきや npm scripts で lint と format を作ってそれを叩くだけといえばそれで終わりという感じ
  • ESLint と Prettier の組み合わせは以下の記事を参照