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"