eslint コマンドのインストール
ESLint のインストールは、Node.js の npm
コマンドで簡単に行うことができます。
インストールできたか確認します。
$ eslint --version
v0.18.0
次のように .js
ファイルを指定することで静的解析を実行できます。
ESLint の設定ファイル
ESLint の設定は、JSON 形式あるいは YAML 形式の .eslintrc
ファイルで行います。
以下のような構成で、前提とする実行環境、参照可能なグローバルオブジェクト、適用する Lint ルールの設定、を記述していきます。
Node モジュールとして作成する JS ファイルに対しては、package.json
の中に ESLint の設定を記述してしまうことができます。
その場合は、下記のように、eslintConfig
プロパティの中に同様の設定を記述します。
それでは、各項目の順番に設定方法を見ていきます。
(1) Environments - 実行環境の指定
このセクションでは、その JS ファイルがどのような環境で実行されるかを指定します。 例えば、「ブラウザ」上で実行する、「AMD モジュール」として作る、「Node モジュール」として作る、といった前提環境を指定します。 ここで環境を指定することにより、その環境に合わせたグローバルオブジェクトの参照許可や、Lint ルールなどが自動的に設定されます。 指定できる環境の一覧は、
の Specifying Environments の節に、次のように列挙されています。
browser - browser global variables. node - Node.js global variables and Node.js-specific rules. amd - defines require() and define() as global variables as per the amd spec. mocha - adds all of the Mocha testing global variables. jasmine - adds all of the Jasmine testing global variables for version 1.3 and 2.0. phantomjs - phantomjs global variables. jquery - jquery global variables. prototypejs - prototypejs global variables. shelljs - shelljs global variables. es6 - enable all ECMAScript 6 features except for modules.
例えば、ブラウザ上で実行する JavaScript コードであり、その中で jQuery と RequireJS を使用したいのであれば、下記のように定義します。
このように環境設定しておくことで、jQuery オブジェクト ($
) などのグローバルオブジェクトにアクセスしても、未定義エラーとして検出されないようにすることができます。
(2) Globals - 参照するグローバルオブジェクト
このセクションでは、参照可能なグローバル変数を、ひとつずつ明示的に設定することが可能です。
環境設定セクションに "amd": true
と書いてあれば、define()
と require()
はアクセス可能になるのですが、下記のように明示的に指定することも可能です。
JSLint と同様に、ソースコードの中で、参照可能なグローバルオブジェクトを定義しておくこともできます(変数名の後ろの false
は、このファイルで代入を行わないということを示します)。
(3) Rules - 適用する Lint ルールの設定
ルールのセクションでは、実際に適用する Lint ルールの設定を行います(ここが設定が重要)。 各ルールに対しての設定を、下記のようなプロパティの形でひとつずつ指定していきます。
"ルール名": 適用方法,
適用方法の部分には、そのルールをどう反映するかを表す、0、1、2 のいずれかの値を指定します。
- 適用方法
0
- off(ルールを無効にする)1
- warning(警告として検出する)2
- error(エラーとして検出する)
ルール設定には、追加のパラメータを持つものもあり、その場合は配列の形で設定値を記述します。 配列の 1 番目の値として、上記と同様に 0、1、2 のいずれかの適用方法を指定します。
"ルール名": [適用方法, 追加パラメータ1, 追加パラメータ2]
デフォルトで有効になっているルールに関しては、適用方法として 2(エラーとして検出)が設定されます。 組み込みで用意されているルールの一覧は、下記のサイトで確認することができます。