Skip to content
← Back to rules

import/no-dynamic-require 制限

何をするか

モジュール引数に式を使用するインポートを禁止します。これには、requireimport 演算子で実行時に解決される動的なパスが含まれます。

なぜ問題か

ランタイム時に解決される式をインポート文で使用すると、モジュールがどこからインポートされているかを把握するのが難しくなります。これはコードのナビゲーションを複雑にし、静的解析ツールの動作を妨げます。これらのツールは、リンター処理、バンドル、その他の最適化のために予測可能なモジュールパスに依存しています。

このルールに対して誤りなコードの例:

javascript
require(name);
require(`../${name}`);

このルールに対して正しいコードの例:

javascript
require("../name");
require(`../name`);

設定

このルールは以下のプロパティを持つ設定オブジェクトを受け付けます:

esmodule

type: boolean

default: false

true の場合、動的モジュール仕様子を含む import() 式もチェック対象になります。

使用方法

設定ファイルまたは CLI でこのルールを有効化するには、次のように使用できます:

json
{
  "plugins": ["import"],
  "rules": {
    "import/no-dynamic-require": "error"
  }
}
bash
oxlint --deny import/no-dynamic-require --import-plugin

参照