なっく日報

技術やら生活やらのメモ

ESLintでextendsする設定を動的に変更する

※ 追記:よくよくドキュメントを見てみたら、-c airbnbみたいにオプションでESLintの共有設定の指定もできるそう。なので、この記事は本当に参考程度に。

どこまで使えるかは知りませんが、一応こんなこともできるよというメモ。

github.com

↑みたいな感じでESLintの共有設定を作成する場合、 base.js, legacy.js みたいなファイルができていくので、一時的に試したい場合、.eslintrcファイルを作って都度切り替える必要があります。

root: true
extends: ./base.js

みたいな設定ファイルですね。

切り替えるためには、base.js<->legacy.jsを都度都度書き換える or base.js, legacy.jsに対応する設定を作って、eslint -c .eslintrc-base.yml .みたいに切り替える方法がありますが、いずれにせよちょっと面倒です。

eslint.org

の設定を見る限り、extendsを変更するオプションはないようですね。

が、.eslintrcにJS形式を指定したところ動的に切り替えることができました。

.eslintrc.js

module.exports = {
  root: true,
  extends: require.resolve(process.env.ESLINT_CONFIG_NAME),
};
ESLINT_CONFIG_NAME=./base.js eslint .

のように。

あんまり需要ないと思いますが、一応できたよという共有でした。