LoginSignup
23
22

More than 5 years have passed since last update.

ESLint v3.0.0

Last updated at Posted at 2016-07-02

v2.13.0 | 次 v3.1.0

2016年 6月 30日 (日本時間) に ESLint は 3 歳の :birthday: 誕生日を迎えました。
特にイベントがあったわけではありませんが、Nicholas がちょっとした誕生秘話を披露していました。

さて、その週末に ESLint 3.0.0 がリリースされました。

メジャーバージョン アップなので、互換性のない変更があります。変更内容についてはこの記事でも解説していますが、詳しくはマイグレーション ガイド (英語) を御覧ください。

質問やバグ報告等ありましたら、お気軽にこちらまでお寄せください。

URI
:globe_with_meridians: 日本語 Issue 管理リポジトリ https://github.com/eslint/eslint-jp
:speech_balloon: 日本語サポート チャット https://gitter.im/eslint/eslint-jp
:globe_with_meridians: 本家リポジトリ https://github.com/eslint/eslint
:speech_balloon: 本家サポート チャット https://gitter.im/eslint/eslint

:boom: 互換性のない変更

#4483: Node 4 未満のバージョンのサポートを終了

Node.js v0.10 は9月末、Node.js v0.12 は12月末でメンテナンス サポートが終了します (参考: https://github.com/nodejs/LTS )。これに先立って、ESLint では v0.10v0.12 のサポートを終了します。 ESLint 3 がサポートするのは Node.js v4 以上のバージョンとなります。

Node.js v0.10, v0.12 で ESLint を実行する必要がある場合は ESLint 3 へのアップグレードをお控えください。

Travis CI のようなツールで複数の Node バージョンでのテストを実施する場合、同じソースコードをすべての Node バージョンで ESLint によるチェックをする必要はないかもしれません。その場合は、if-node-version のようなツールで ESLint が実行される Node バージョンを限定することもできます。

#5987: ルール設定が必須になった

ESLint 2 では、設定がない状態で ESLint を実行すると構文エラーだけをチェックしていました。
ESLint 3 からは、設定がない状態で ESLint を実行すると常にエラーを表示し、eslint --init コマンドによって設定ファイルを作成することを促します。

ESLint couldn't find a configuration file. To set up a configuration file for this project, please run:

    eslint --init

ESLint looked for configuration files in <%= directory %> and its ancestors.

If you think you already have a configuration file or if you need more help, please stop by the ESLint chat room: https://gitter.im/eslint/eslint

なお、設定ファイルが存在しない場合でも、"設定" があればこのエラーは表示されません。

例:

$ eslint . --rule semi:error
$ eslint . --config airbnb
$ eslint . --no-eslintrc

#6021, #6403, #6550: eslint:recommended プリセットが更新された

ES3 環境では末尾カンマが無効な構文なので、eslint:recommendedcomma-dangle ルールが入っていました。しかし、もはや必要なくなったと判断されたため削除されました。これに伴い、comma-dangle ルールは「エラーを防ぐルール」カテゴリから「スタイル ルール」カテゴリへ移動されました。

complexity ルールのオプション変更については、以前の「"eslint:recommended" がルール本来の振る舞いを変更しないようになった」修正から漏れてしまっていたのを改めて修正したものです。深い意図はありません。

#6302: CLIEngine#executeOnText() API の挙動が変更された

この API は、文字列を渡して静的検証を行う公開メソッドです。
オプションとして文字列のもととなったファイルへのパスを渡すことができます。

従来は .eslintignore ファイルなどで「無視するファイル」を設定してあったとしても、CLIEngine#executeOnText() はオプションとして渡されたファイルパスが無視すべきファイルかどうかをチェックしませんでした。無視すべきファイルかどうかチェックするのは CLIEngine#executeOnFiles() の方です。

しかし、Gulp 等のタスク ランナーから利用するのに不便とのことで、CLIEngine#executeOnText() でもオプションとして渡されたファイルパスが無視すべきファイルかどうかをチェックするようになりました。

:wrench: オプションが追加されたルール

#6259: indent

outerIIFEBody オプションが追加されました。
このオプションを利用すると、一番外側の即時関数はインデントなしにできます。
jQuery のスタイルガイド等がそうなっているらしいです。

/*eslint indent: ["error", 4, {"outerIIFEBody": 0}]*/

// ✔ GOOD
(function() {

function foo(x) {
    return x + 1;
}

})();


// ✘ BAD
(function() {
    function foo(x) {
        return x + 1;
    }
})();

:pencil: 新たに 2 つのルールが eslint --fix をサポートした

23
22
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
23
22