web-dev-qa-db-ja.com

async / awaitには正しいeslintrcが必要-7.6以上のnodejsを使用

Nodejs 7.6以降の最新バージョンでは、async/awaitを使い始めました。

私はjshintを使用していましたが、私が読んだことから、それらは現在この構文をサポートしており、一部はeslintの使用を提案しています。

さて、私はeslintを設定しましたが、それは非同期関数にもフラグを立てます。
Parsing error: Unexpected token init (Fatal)

私のコードは正常に動作しているので、何も問題はありません。それは単なるリンターです。また、非同期関数をコメント化すると、次の関数にフラグが立てられるだけです。実際、eslintはこのエラーで見つかった最初の非同期のみにフラグを付けますが、それらすべてにフラグを立てるわけではありません(それについてどうですか?)

以下は、initウィザードを使用して作成されたeslintrcファイルです。私はノードを要求することを望んでいました、そしてenvのes6で十分でしょう...どうやらそうではありません。

module.exports = {
    "env": {
        "es6": true,
        "node": true
    },
    "extends": "eslint:recommended",
    "rules": {
        "indent": [
            "error",
            "tab"
        ],
        "linebreak-style": [
            "error",
            "unix"
        ],
        "quotes": [
            "error",
            "single"
        ],
        "semi": [
            "error",
            "never"
        ]
    }
};

修正は何ですか?

.eslintrcのいくつかのバージョンを試しましたが、eslintリポジトリに関連するいくつかの問題があることさえわかりましたが、これを解決するのに役立つものはありません。 commonjs(babelなし)を使用してネイティブnodejs用にeslintを正しく設定することについて何か欠けているバグではないと私は思います。

私がbabelを使用していなくても、これを機能させるにはbabelプラグインが必要なのは誰でしょうか?それが本当なら、どうやってそれを設定するのですか?.

16
DKebler

async/awaitはES2017の機能であるため、.eslintrc.jsに追加する必要があります。

module.exports = {
    // ...
    "parserOptions": {
        "ecmaVersion": 2017
    },
    // ...
}
33
btmills