ESLintについてのメモ

  • 150
    いいね
  • 0
    コメント
この記事は最終更新日から1年以上が経過しています。

ESLint についてのメモ

The pluggable linting utility for JavaScript

JSHintJSLintはユーザ独自のルールを追加することはできないけれど、ESLintは完全に全てのルールがプラガブルになるようデザインされている。

Install

$ npm install -g eslint

Usage

$ eslint -h
eslint [options] file.js [file.js] [dir]

Options:
  -h, --help                 Show help.
  -c, --config path::String  Load configuration data from this file.
  --rulesdir path::String    Load additional rules from this directory.
  -f, --format String        Use a specific output format. - default: stylish
  -v, --version              Outputs the version number.
  --reset                    Set all default rules to off.
  --eslintrc                 Enable loading .eslintrc configuration. - default: true

Configure

ルールを設定する方法は2つ。
- JavaScriptファイルに直接コメントで記述
- 設定を記述したJSONYAMLのファイルを利用する(デフォルトでは.eslintrc)

設定できる情報は以下の構成。
- Environments : スクリプトの実行環境。Environmentsの設定値に従ってその環境のデフォルトで有効なグローバル変数とルールが設定される。
- Globals : 実行時に追加するグローバル変数。
- Rules : 有効にされているルールとエラーレベルのルール。

Environments

設定ファイルでのみ定義できる。使用可能なenvironmentsの値は以下。

  • browser : ブラウザのグローバル変数
  • node : nodeのグローバル変数とnode特有のルール
  • amd : define()require()をグローバル変数として定義
  • mocha : mochaのグローバル変数

envキーを使って、有効にしたい環境をtrueに設定する。

{
  "env": {
    "browser": true,
    "node": true
  }
}

YAML形式であれば

---
  env:
    browser: true
    amd: true

Globals

特定のグローバル変数を許可する場合、JSファイルの中にコメントを記述する形でも設定ファイルに記述する形でも、どちらでもよい。

/*global var1, var2*/

falseにすると書き込み禁止(読み取り専用)にもできる。

/*global var1:false, var2:false*/

設定ファイルに記述する場合も同様。globalsキーを使って記述する。

{
    "globals": {
        "var1": true,
        "var2": false
    }
}

Rules

ESLintは、デフォルトで有効なルールとデフォルトで無効なルールとで構成されている。ルールはJSファイルにコメント記述でも設定ファイルに記述でも、変更できる。

設定するには、ルールのIDに対して
- 0 : 無効にする
- 1 : 有効にする(警告)
- 2 : 有効にする(エラー)

ESLintのルールについては、公式サイトにドキュメントがある。
JSファイルにコメントで記述する場合は以下のように記述する。

/*eslint eqeqeq:0, curly: 2*/

設定ファイルに記述する場合は、rulesキーを用いて記述する。

{
    "rules": {
        "eqeqeq": 0,
        "curly": 2,
        "quotes": [2, "double"]
    }
}

なお、デフォルト有効のルールはすべて2に設定されている。

Links