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" } }