最近業務でフロントエンド開発を行う様になってきました。JavaScriptやHTML書いたり、Webpackのコンフィグ見てみたりとしています。フロントエンドに関心が高まる中JavaScriptに関するインターネット上の記事をふと読んだところ、ESLintなるものは知ってて当然との事が書いてありました。なので、早速コンフィグ周りを触ってみました。
ESLintって何?
ESLintとは、EcmaScriptつまりJavaScriptのリントツールです。おかしな構文を発見し警告してくれたり、自動的に直してくれたりします。なので、プロジェクトなどで使えば標準フォーマットとすることも出来ますし、個人で使ってもバグを抑制できます。もともとJavaScriptの言語自体に間違いやすい様な特性があるので、静的解析してくれるのはありがたい話です。
コンフィグ
設定ファイルは難しい知識は必要ないです。必要だと思ったルールを追加し、エラーレベルやオプションをいじれば完成します。標準で有効化されているルールもあり、.eslint.jsファイルの "extends": "eslint:recommended" という文で設定されてます。
ルールの書き方は非常にシンプルです。
"ルール名" : [ "エラーレベル(error, warn, off)" , "その他オプション" ]
例えば、以下の様な感じです。
module.exports = { "env": { "browser": true, "commonjs": true, "es6": true, "node": true }, "extends": "eslint:recommended", "parserOptions": { "sourceType": "module" }, "rules": { "indent": [ "error", 4 ], "linebreak-style": [ "error", "unix" ], "quotes": [ "error", "single" ], "semi": [ "error", "always" ], "no-console": [ "off" ], "no-var": [ "error" ] } };
実行
IDEやAtomのプラグインを使って実行することも出来ますが、ここではbashでコマンド実行してみます。
eslint ファイル名
入力ファイル
var hogo = 200; console.log(hogo) function h() { console.log("hello"); }
出力
1:1 error Unexpected var, use let or const instead no-var 2:18 error Missing semicolon semi 4:10 error 'h' is defined but never used no-unused-vars 5:1 error Expected indentation of 4 spaces but found 2 indent 5:15 error Strings must use singlequote quotes ✖ 5 problems (5 errors, 0 warnings) 4 errors, 0 warnings potentially fixable with the `--fix` option.
色々と警告してくれてますね。ここで、--fixオプションをコマンと引数に与えると、自動修正できるものはしてくれます。
修正されたファイル
let hogo = 200; console.log(hogo); function h() { console.log('hello'); }