Help us understand the problem. What is going on with this article?

ESLint v4.9.0

More than 1 year has passed since last update.

v4.8.0 | 次 v4.10.0

ESLint 4.9.0 がリリースされました。
小さな機能追加とバグ修正が行われています。

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

🏢 日本語 Issue 管理リポジトリ
👫 日本語サポート チャット
🏢 本家リポジトリ
👫 本家サポート チャット

🚀 本体への機能追加

#9073: --fix-dry-run CLI オプション

エディタ連携等の開発者向けです。

この CLI オプションは、--fixと同様にソースコードの自動修正を実行しますが、ソースコード ファイルを修正せず、デフォルトではどこにも表示しません。--fix-dry-runの結果を表示するには、JSON フォーマッター等のフォーマッターを指定する必要があります。

$ cat test.js | eslint --stdin --fix-dry-run --format=json

この CLI オプションは、外部プロセス呼び出しで ESLint を利用するツールが自動修正機能を利用するために追加されました。

💡 新しいルール

#9141: lines-between-class-members

JSCS Icon JSCS 互換ルールです。

クラス定義において、メソッド間の空白行を矯正するスタイル・ルールです。

/*eslint lines-between-class-members: error */

//✘ BAD
class Bad {
    foo() {
    }
    bar() {
    }
}

//✓ GOOD
class Bad {
    foo() {
    }

    bar() {
    }
}

Demoを開く

#9389: multiline-comment-style

JSCS Icon JSCS 互換ルールです。

複数行コメントの書き方を矯正するスタイル・ルールです。

デフォルトでは、各行頭に*があるブロックコメントを使うよう警告します。

/*eslint multiline-comment-style: error */

//✘ BAD

// ラインコメントで
// 複数行

/*
行頭に`*`が無い
ブロックコメント
*/

//✓ GOOD

/*
 * 行頭に`*`がある
 * ブロックコメント
 */

Demoを開く

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

#8565: lines-around-comment allowClassStart and allowClassEnd

コメントの前後の空白行を矯正するスタイル・ルール lines-around-comment について、クラス本体の先頭と末尾にあるコメントをチェックしないようにするオプションが追加されました。

/*eslint lines-around-comment: [error, {allowClassStart: true}] */

//✓ GOOD
class A {
    /**
     * foo.
     */
    foo() {
    }
}

Demoを開く

#9206: array-bracket-newline consistent

配列のカッコ[]の内側の改行を矯正するスタイル・ルール array-bracket-newline について「どちらかに改行があれば他方にも改行が必要」とするオプションが追加されました。

/*eslint array-bracket-newline: [error, consistent] */

//✘ BAD
const xs1 = [
    1, 2, 3 ]

//✓ GOOD
const xs2 = [
    1, 2, 3
]
const xs3 = [1, 2, 3]

Demoを開く

#9229: no-else-return allowElseIf

return文で終わるif構文のelse句を警告するルール no-else-return について、そのelse句が別のif文であったときも警告するオプションが追加されました。

/*eslint no-else-return: [error, {allowElseIf: false}] */

//✘ BAD
function wrap(a) {
    if (a === 0) {
        return "zero"
    } else if (a === 1) {
        return "one"
    }
}

//✓ GOOD
function wrap(a) {
    if (a === 0) {
        return "zero"
    }
    if (a === 1) {
        return "one"
    }
}

Demoを開く

#9395: require-jsdoc FunctionExpression

JSDoc コメントが無い関数定義やクラス定義を警告するルール require-jsdoc について、変数宣言の初期化式としての関数式もチェックするオプションが追加されました。

/*eslint require-jsdoc: [error, {require: {FunctionExpression: true}}] */

//✘ BAD
const foo = function() {
    // do something...
}

Demoを開く

#9413: no-restricted-imports and no-restricted-modules message

特定のパッケージの読込を禁止するルール no-restricted-importsno-restricted-modules について、パッケージ毎に独自のエラーメッセージを指定できるようになりました。これにより、代わりに使うべきパッケージを提示することができます。

/*eslint no-restricted-modules: [error,
  {name: "domain", message: "There is no substitute."},
  {name: "sys", message: "Use 'util' instead."}
] */

//✘ BAD
const domain = require("domain")
const sys = require("sys")

Demoを開く

✒️ eslint --fix をサポートしたルール

今回はありません。


mysticatea
ESLint のメンテナ。Vue.js の開発チームメンバー。JavaScript 言語仕様書 ECMA-262 や JavaScript 構文解析器 Acorn のコントリビューター。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした