前提
- 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で走らせればあまり必要はない気もしますが。