Skip to content

Análise multiarquivo

Permite que regras usem informação do projeto inteiro (grafo de módulos) em vez de analisar cada arquivo isolado.

Desempenho e arquitetura

O ESLint avalia regras por arquivo e não oferece grafo de projeto nativo. Plugins como eslint-plugin-import precisam reconstruir resolução e grafo fora do núcleo. Projetos relatam dezenas de segundos ou mais de um minuto em import/no-cycle em repositórios grandes.

O Oxlint implementa análise multiarquivo no motor: lint e construção do grafo em paralelo, parse e resolução compartilhados — import/no-cycle comparável costuma levar poucos segundos.

Habilitar o plugin import

É preciso habilitar o plugin import e pelo menos uma regra import/*. Exemplo na seção seguinte.

Ciclos com import/no-cycle

import/no-cycle detecta dependências circulares.

Ciclos:

  • obscurecem a direção das dependências
  • dificultam refatoração
  • podem deixar valores undefined por ordem de avaliação
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 }],
  },
});

Aliases de caminho do TypeScript

Com regras import/*, o Oxlint descobre tsconfig.json e resolve aliases (compilerOptions.paths).