マルチファイル分析
マルチファイル分析により、各ファイルを孤立して解析するのではなく、モジュール依存関係グラフなどのプロジェクト全体の情報を使用したルールの実行が可能になります。
パフォーマンスとアーキテクチャ
ESLint は各ファイルごとにルールを評価し、組み込みのプロジェクトグラフを提供しません。eslint-plugin-import のようなプラグインは、ESLint のコア外部でモジュール解決とモジュールグラフを再構築しなければなりません。プロジェクトでは、元の import/no-cycle ルールが数秒から、より大きなリポジトリでは1分以上かかることも報告されています。
Oxlint はコアエンジン内でマルチファイル分析を実装しています。ファイルの静的解析とモジュールグラフの構築を並列で行い、ルール間でパースおよび解決を共有することで、同等の import/no-cycle チェックを数秒で完了することが通常です。
import プラグインの有効化
マルチファイル分析を使用するには、import プラグインを有効化し、少なくとも1つの import/* ルールを設定する必要があります。詳細な例については、次のセクションの設定ファイルをご覧ください。
import/no-cycle による循環の検出
import/no-cycle を有効化して、循環依存を検出します。
インポートの循環は以下のような問題を引き起こす可能性があります:
- 依存関係の方向性が不明瞭になる
- リファクタリングが難しくなる
- 評価順序の影響でインポートされた値が
undefinedになる可能性がある
json
{
"$schema": "./node_modules/oxlint/configuration_schema.json",
"plugins": ["import"],
"rules": {
"import/no-cycle": ["error", { "maxDepth": 3 }]
}
}TypeScript のパス別名
import/* ルールを実行する際、Oxlint は自動的に tsconfig.json を検出し、compilerOptions.paths などの TypeScript のパス別名を解決します。
