Skip to content

多文件分析

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

性能和架构

ESLint 按文件评估规则,不提供内置的项目图。诸如 eslint-plugin-import 之类的插件必须在 ESLint 核心之外重建模块解析和模块图。有项目报告原始的 import/no-cycle 规则耗时数十秒,或者在较大的仓库中耗时超过一分钟。

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

启用 import 插件

要使用多文件分析,你必须启用 import 插件并配置至少一个 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 }]
  }
}
ts
import { defineConfig } from "oxlint";

export default defineConfig({
  plugins: ["import"],
  rules: {
    "import/no-cycle": ["error", { maxDepth: 3 }],
  },
});

TypeScript 路径别名

运行 import/* 规则时,Oxlint 会自动发现 tsconfig.json 以解析 TypeScript 路径别名,例如 compilerOptions.paths