Skip to content

Arquivos de configuração aninhados

O Oxlint pode usar várias configs no mesmo repositório. Detecta automaticamente .oxlintrc.json ou oxlint.config.ts e aplica a mais próxima de cada arquivo.

Útil em monorepos com pacotes com regras próprias e baseline compartilhada.

Para só excluir pastas/arquivos, prefira Ignorar arquivos.

Como funciona

Para cada arquivo lintado, vale a config mais próxima na árvore de diretórios.

my-project/
├── .oxlintrc.json
├── src/
│   ├── index.js
├── package1/
│   ├── oxlint.config.ts
│   └── index.js
└── package2/
    ├── .oxlintrc.json
    └── index.js
  • src/index.jsmy-project/.oxlintrc.json
  • package1/index.jsmy-project/package1/oxlint.config.ts
  • package2/index.jsmy-project/package2/.oxlintrc.json

O que esperar

Configs não são mescladas automaticamente: filho não altera pai.

Flags CLI sobrepõem config, venha ela de diretório pai ou filho.

-c / --config com caminho explícito desativa busca aninhada — só aquela config.

Também dá para desligar configs aninhadas com --disable-nested-config.

options.typeAware e options.typeCheck só na config raiz; se aparecerem em config aninhada, o Oxlint reporta erro.

Monorepo: baseline compartilhada com extends

Um .oxlintrc.json ou oxlint.config.ts na raiz; pacotes estendem e ajustam pouco.

json
{
  "rules": {
    "no-debugger": "error"
  }
}
ts
import { defineConfig } from "oxlint";

export default defineConfig({
  rules: {
    "no-debugger": "error",
  },
});
json
{
  "extends": ["../.oxlintrc.json"],
  "rules": {
    "no-console": "off"
  }
}
ts
import baseConfig from "../oxlint.config.ts";
import { defineConfig } from "oxlint";

export default defineConfig({
  extends: [baseConfig],
  rules: {
    "no-console": "off",
  },
});

Reutilizar arquivos com extends

Caminhos em extends são relativos ao arquivo que declara. Arquivos estendidos podem ter qualquer nome (desde JSON válido). Para oxlint.config.ts, o arquivo com extends deve se chamar oxlint.config.ts.

json
{
  "plugins": ["typescript"],
  "rules": {
    "typescript/no-explicit-any": "error"
  }
}
ts
import { defineConfig } from "oxlint";

export default defineConfig({
  plugins: ["typescript"],
  rules: {
    "typescript/no-explicit-any": "error",
  },
});
json
{
  "extends": ["oxlint-typescript.json"],
  "rules": {
    "no-unused-vars": "warn"
  }
}
ts
import typescriptConfig from "./oxlint-typescript.config.ts";
import { defineConfig } from "oxlint";

export default defineConfig({
  extends: [typescriptConfig],
  rules: {
    "no-unused-vars": "warn",
  },
});

Propriedades que podem ser estendidas:

  • rules
  • plugins
  • overrides