pre-commitでeslintを走らせてコードを綺麗にしていく
linterがあるとコーディングスタイルが統一され無駄なdiffやバグの防止ができますが、 既存のアプリにあとから導入しようと思うといきなり大量のエラーがでてきて萎えてしまいます。 そこで自分が編集したファイルだけlintを実行して少しずつ直していくというのはどうでしょう。
下記の例のようなpackage.jsonをプロジェクトルートに作り、
$ npm install
をするだけで設定は完了です。
設定をした上でgitでcommitしようとすると、
変更があったファイルに対してのみlintが実行され、
lintに失敗するとcommitがコケるようになります。
(どうしてもlinterを無視してコミットしたい場合はgit commit --no-verifyとします。)
ちなみにコミットする前に手動でlinterを走らせたい場合は
$ npm run lint:commit
とします。
Boy Scout Ruleで少しずつコードを綺麗にしていきましょう!
package.jsonの例
{
"name": "sample",
"version": "1.0.0",
"description": "sample",
"repository": {
"type": "git",
"url": "http://gitlab.fdev/sample/sample.git"
},
"pre-commit": [
"precommit-msg",
"lint:commit"
],
"scripts": {
"lint:commit": "git diff --cached --name-only | grep .js$ | xargs eslint",
"precommit-msg": "echo 'Pre-commit checks...' && exit 0"
},
"devDependencies": {
"eslint": "^3.14.1",
"pre-commit": "^1.2.2"
}
}