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 у импортов из‑за порядка вычисления
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 и разрешает алиасы вроде compilerOptions.paths.