ESLint とは
GitHub では、こんな感じに書いてある。
ESLintは、ECMAScript / JavaScriptコードで見つかったパターンを識別して報告するためのツールです。多くの点で、JSLintとJSHintに似ていますが、例外はいくつかあります。
- ESLintは、JavaScriptの解析にEspreeを使用します。
- ESLintはASTを使用してコード内のパターンを評価します。
- ESLintは完全にプラグイン可能であり、すべてのルールがプラグインであり、実行時に追加することができます。
インストールと使い方
npm でインストールする。オススメはローカルにインストールすることだそうな。
$ npm install --save-dev eslint
プロジェクトなどでいろいろあるだろうから、やはりローカルでしょう。パスが通らないのが悲しいけど。
$ ./node_modules/.bin/eslint --init
こんな感じで初期化。
設定
初期化すると .eslintrc
というファイルができている。このファイルにこんな感じで設定を書いていく。
{ "rules": { "semi": ["error", "always"], "quotes": ["error", "double"] } }
これがまた設定を書くのが面倒。適当なのを探すのが吉か?
プラグイン
とりあえず、node.js で使うので、それ用のプラグインを入れてみる。
$ npm install --save-dev eslint eslint-plugin-node
再度設定
{ "extends": ["eslint:recommended"], "plugins": ["node"], "env": { "es6": true, "node": true }, "rules": { "node/exports-style": "error", "node/no-deprecated-api": "error", "node/no-missing-import": "error", "node/no-missing-require": "error", "node/no-unsupported-features": "error", "node/process-exit-as-throw": "error", } }
プラグインを読み込ませて("plugins": ["node"]
)、ES6 を指定して("es6": true
)、node.js を指定して("node": true
)。
ルールの説明
- “node/exports-style”: “error”
module.exports
とexports
は「混ぜるな危険」です。
"node/exports-style"
を["error", "module.exports"]
か["error", "exports"]
と使うやつを指定することもできる。- “node/no-deprecated-api”: “error”
- node.js の非推奨 API を使うとエラーにする。
- “node/no-deprecated-api”: “error”
- node.js の非推奨 API を使うとエラーにする。
- “node/no-missing-import”: “error”
- 存在しないファイルの import と export を禁止する。が、ES6 ではファイルの探し方がちゃんと決まっていないので将来的に変更があるよと書いてあった。
- “node/no-missing-require”: “error”
- 存在しないファイルに対しての require を禁止する(no-missing-import と似ているが使い分けがまだわからん)。
- “node/no-unsupported-features”: “error”
- 指定した node.js のバージョンでサポートされていない構文の使用を禁止する。node.js のバージョンは package.json で指定してあるやつ(
"engines": {"node": ">=6.10.0"}
)。
間違っていたらゴメンなさい。
コメント