🐶
Huskyを導入した話
NestProjectにHuskyを入れた話
備忘録
入れた経緯
自分含め他メンバーとのコードの品質を制御・管理した方が良いと思ったため
前提条件
ESLintとPrettierは別途タイミングで導入済み
導入方法
terminal
$ npm i -D husky
$ npm i -D lint-staged
terminal
$ npx husky init
↓
package.json
"scripts": {
"prepare": "husky"
}
が追加される。
package.jsonのscripts下部に追記
package.json
},
"lint-staged": {
"*.{js,jsx,ts,tsx}": [
"eslint --fix",
"prettier --write"
]
},
エラー問題
- Dockerによる永続化のデータとして、mysql_dataがあり、ESLintがこれに反応しエラーを出していたためignoreにて対応。
.eslintignore
mysql_data
-
.husky/pre-commit
の内容がnpmまでしか記載がなく、huskyの実行エラーになる問題。
pre-commit
- npm
+ npm run <command>
// もしくは
+ npx lint-staged
.husky/pre-commit
pre-commit
npx lint-staged
package.jsonのscriptsセクションに
package.json
"script": {
"lint-staged": "lint-staged",
},
と書けば、npm run lint-staged
でも構わない。
.husky/pre-push
pre-push
npx lint-staged
package.json
lint-staged
セクションを追加する。
package.json
"script": {
"start": "node index.js",
"test": "jest",
},
"lint-staged": {
"*.{js,jsx,ts,tsx}": [
"eslint --fix",
"prettier --write"
]
},
Discussion