前提
- Node.js限定です
- prettier, eslintは導入済みとする
-
gitコマンドを使わないと走らないので注意
SorceTreeでcommitしたら動きました
やること
pre-commitでprettier --write
,eslint --fix
,jest
を走らせる。
方法
huskyを入れてpackage.jsonにちょろっと書いて終わり。便利。
huskyとlint-stagedをインストール
~$ npm i -D husky lint-staged
package.json編集
nameやversionと同階層に以下を追加。対象コードが格納されてるディレクトリは環境に合わせて修正。
"husky": {
"hooks": {
"pre-commit": "lint-staged; jest"
}
},
"lint-staged": {
"*.{js,jsx}": [
"prettier --write './src/**/*.js'",
"prettier --write './__tests__/**/*.js'",
"eslint --fix './src/**/*.js'",
"eslint --fix './__tests__/**/*.js'"
]
}
おわり
後は適当に編集してgit add -A
してgit commit
すればlint-stagedに書いた内容が実行されてからjestが実行されます。
sh書かなくても良いのは楽ですね。ReactやVue.js環境でももちろん動きます。
VSCode環境ならprettierもeslintもAutoSaveで走らせればあまり必要はない気もしますが。