🐷

eslint (no-restricted-imports) で特定のimportを特定のディレクトリから禁止する

2023/04/12に公開

シンプルな設定なら plugin を使わなくてもできたのでメモ

  • 特定のimportを禁止する
  • でも特定のディレクトリ(パス)ではoffにする

とすればできる

相対importとかまで複雑に制御しようとすると patterns がビミョいことになる。
外部ライブラリの制限用途などだとシンプルで済む。


@awesome-module の import を禁止して src/foo/** では OK にする例:

// eslint configuration
{
  "rules": {
    "no-restricted-imports": [
      "error",
      {
        "patterns": ["@awesome-module"]
      }
    ]
  },
  "overrides": [
    {
      "files": ["src/foo/*"],
      "rules": {
        "no-restricted-imports": "off"
      }
    }
  ]
}

Path, Patterns などの設定方法はドキュメントを参照
https://eslint.org/docs/latest/rules/no-restricted-imports

Discussion