バレルファイルの乱用 (Barrel Abuse)
ID: barrel_file | 重要度: 中 (デフォルト)
バレルファイル(他のファイルを再エネクスポートするだけの index.ts ファイルなど)は、サイズが大きくなりすぎたり、無関係なエクスポートが多く含まれたりすると問題になる可能性があります。
なぜこれが「不吉な臭い」なのか
- 循環依存: 巨大なバレルファイルは、間接的な循環依存の一般的な原因となります。
- 不必要な結合: 巨大なバレルファイルから1つのものをインポートするだけで、バンドラーが無関係な多くのモジュールを取り込んでしまう可能性があります。
- パフォーマンス: 開発時(IDEのインデックス作成)と本番環境(バンドルサイズや読み込み時間)の両方を低下させる可能性があります。
設定
yaml
rules:
barrel_file:
severity: high
max_reexports: 10ESLint ルール
このディテクターは、エディター内でリアルタイムのフィードバックを提供する ESLint ルールとして利用可能です。
javascript
// eslint.config.js
export default [
{
rules: {
'@archlinter/no-barrel-abuse': 'warn',
},
},
];セットアップ手順については ESLint Integration を参照してください。
修正方法
- 大規模なディレクトリのルートにある「何でも屋」的なバレルファイルを避けてください。
- バレルファイルが問題を引き起こしている場合は、直接インポートすることを検討してください。
- エクスポートを、より小さく特定の目的に絞ったバレルファイルに分割してください。