Skip to content
← Back to rules

oxc/no-barrel-file 制限

何ができるか

export * のステートメントを含み、再エクスポートするモジュールの総数がしきい値を超える場合、バレルファイル(バーレルファイル)の使用を禁止します。

デフォルトのしきい値は 100 です。

なぜ問題なのか

多くのモジュールを再エクスポートするバレルファイルは、アプリケーションやバンドラーの実行速度を著しく低下させる可能性があります。バレルファイルが多数のモジュールをエクスポートしている場合、そのファイルからインポートすると、実際には使用されていないモジュールもすべて処理される必要があるため、ランタイムまたはバンドラーが負荷を増大させます。その結果、起動時間が遅くなり、バンドルサイズも大きくなります。

参考資料:

無効な例:

javascript
export * from "foo"; // `foo` が 100 個のモジュールのサブツリーを読み込む場合
import * as ns from "foo"; // `foo` が 100 個のモジュールのサブツリーを読み込む場合

有効な例:

javascript
export { foo } from "foo";

設定

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

threshold

type: integer

default: 100

ルールが発動するまでの、export * を通じて再エクスポート可能なモジュールの最大数。

使用方法

設定ファイルまたは CLI でこのルールを 有効化 するには、次のように記述します。

json
{
  "rules": {
    "oxc/no-barrel-file": "error"
  }
}
bash
oxlint --deny oxc/no-barrel-file

参考情報