import/no-dynamic-require 制限
何をするか
モジュール引数に式を使用するインポートを禁止します。これには、require や import 演算子で実行時に解決される動的なパスが含まれます。
なぜ問題か
ランタイム時に解決される式をインポート文で使用すると、モジュールがどこからインポートされているかを把握するのが難しくなります。これはコードのナビゲーションを複雑にし、静的解析ツールの動作を妨げます。これらのツールは、リンター処理、バンドル、その他の最適化のために予測可能なモジュールパスに依存しています。
例
このルールに対して誤りなコードの例:
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