Skip to content

多文件分析

多文件分析允许规则使用项目级别的信息(例如模块依赖图),而不是孤立地分析每个文件。

性能与架构

ESLint 按文件逐个评估规则,并不提供内置的项目图谱。像 eslint-plugin-import 这样的插件必须在 ESLint 核心之外重新构建模块解析和模块图谱。项目报告称,原始的 import/no-cycle 规则耗时数十秒,或在大型仓库中超过一分钟。

Oxlint 在核心引擎中实现了多文件分析。它并行地检查文件并构建模块图谱,规则之间共享解析和解析结果,通常可在几秒钟内完成类似 import/no-cycle 的检查。

启用 import 插件

要使用多文件分析,您必须启用 import 插件,并配置至少一个 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,以解析 TypeScript 路径别名(如 compilerOptions.paths)。