ESLint で Parsing error: Unexpected token = エラーが発生する

経緯

ESLint で以下のエラーが発生するようになったので対処。

PATH/TO/PROJECT/src/jshoge.js
XX:XX error Parsing error: Unexpected token =

対処

原因としては、 ECMAScript のパブリッククラスフィールドの構文で記述しているコードがあったため。

class Hoge {
    fuga = (elms) => { // ここの fuga = ... の部分
        // 処理
    };
};

export default Hoge;

これに対して ESLint の設定(.eslintrc.json)は以下のようになっていた。

{
    "env": {
        "browser": true,
        "es6": true,
        "jquery": true
    },
    // 略
    "parserOptions": {
        "ecmaVersion": 2018,
        "sourceType": "module"
    },
    // 略
}

先述のパブリッククラスフィールドは ECMAScript2022 で利用できるようになった構文なので、この設定ではエラーになるのは道理。

そのため、 "es6": true,"es2022": true, に、 "ecmaVersion": 2018,"ecmaVersion": 13, に置き換えることで解決しました。

{
    "env": {
        "browser": true,
        "es2022": true,
        "jquery": true
    },
    // 略
    "parserOptions": {
        "ecmaVersion": 13,
        "sourceType": "module"
    },
    // 略
}

ちなみに何故か "es2022": true, のみでは解決できませんでした。 ecmaVersion も明示する必要があるようです。

参考

この記事を書いた人

アルム=バンド

フロントエンド・バックエンド・サーバエンジニア。LAMPやNodeからWP、Gulpを使ってejs,Scss,JSのコーディングまで一通り。たまにRasPiで遊んだり、趣味で開発したり。