なっく日報

技術やら生活やらのメモ

ESLintでno-undefのルールに引っかかった変数だけを抜き出す

またまたまたまたESLintの話題です。

歴史的経緯により存在しているglobal変数をno-undefのルールから除外するということをやったのでご紹介。

no-undefルールとは?

未定義の変数を利用している場合に出るエラーです。

    1:6   error  "Hoge" is not defined     no-undef

みたいなエラーメッセージが出ます。

これに引っかかった場合はタイポ等のバグの可能性が高いです。

特定のルールのみ適用する

eslint --env 'browser' --no-eslintrc --rule 'no-undef: 2' 

な感じで。--no-eslintrc + --ruleで特定のルールのみ適用できます。

引っかかった変数を抜き出す

いつものワンライナーにて。

eslint --env 'browser' --no-eslintrc --rule 'no-undef: 2' src | perl -lnE '/"(.+?)"/ && say "    $1: true"'| sort | uniq

    foo: false
    bar: false
    baz: false

みたいに出てきました!

あとは、これを.eslintrcglobals:以下に追加すればOK。

今後は

これを土台に ィッフウ すこしづつ ア゛ーー正しい作りに、! ゥ変エダイ!

追記

https://eslint.org/docs/user-guide/configuring#specifying-globals

最新のESLintだと globals の設定は "readonly" "writeable" で設定するようになった模様。

上記の例だと↓みたいな感じ

    foo: "readonly"
    bar: "readonly"
    baz: "readonly"