Skip to content

マルチファイル分析

マルチファイル分析により、各ファイルを孤立して解析するのではなく、モジュール依存関係グラフなどのプロジェクト全体の情報を使用したルールの実行が可能になります。

パフォーマンスとアーキテクチャ

ESLint は各ファイルごとにルールを評価し、組み込みのプロジェクトグラフを提供しません。eslint-plugin-import のようなプラグインは、ESLint のコア外部でモジュール解決とモジュールグラフを再構築しなければなりません。プロジェクトでは、元の import/no-cycle ルールが数秒から、より大きなリポジトリでは1分以上かかることも報告されています。

Oxlint はコアエンジン内でマルチファイル分析を実装しています。ファイルの静的解析とモジュールグラフの構築を並列で行い、ルール間でパースおよび解決を共有することで、同等の import/no-cycle チェックを数秒で完了することが通常です。

import プラグインの有効化

マルチファイル分析を使用するには、import プラグインを有効化し、少なくとも1つの import/* ルールを設定する必要があります。詳細な例については、次のセクションの設定ファイルをご覧ください。

import/no-cycle による循環の検出

import/no-cycle を有効化して、循環依存を検出します。

インポートの循環は以下のような問題を引き起こす可能性があります:

  • 依存関係の方向性が不明瞭になる
  • リファクタリングが難しくなる
  • 評価順序の影響でインポートされた値が undefined になる可能性がある
.oxlintrc.json
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 のパス別名を解決します。