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
みたいに出てきました!
あとは、これを.eslintrcのglobals:以下に追加すればOK。
今後は
これを土台に ィッフウ すこしづつ ア゛ーー正しい作りに、! ゥ変エダイ!
追記
https://eslint.org/docs/user-guide/configuring#specifying-globals
最新のESLintだと globals の設定は "readonly" "writeable" で設定するようになった模様。
上記の例だと↓みたいな感じ
foo: "readonly"
bar: "readonly"
baz: "readonly"