Gerador de ESLintrc

Próximo

Este gerador cria uma configuração .eslintrc.json pronta para uso a partir de quatro escolhas: ambiente de navegador ou Node, suporte a TypeScript e suporte a React. Ele conecta eslint:recommended, os plugins de TypeScript ou React correspondentes e algumas substituições de regras sensatas, para você colar o resultado no seu projeto.

Como gerar uma configuração ESLint

  1. 1

    Escolha o ambiente

    Indique se o código roda no navegador, no Node.js ou em ambos. O gerador define as entradas `env` correspondentes, além de `es2022`.

  2. 2

    Ative o TypeScript

    Marque TypeScript e o gerador adiciona `@typescript-eslint/parser` e o plugin TypeScript recomendado.

  3. 3

    Ative o React

    Marque React e o gerador adiciona `eslint-plugin-react` com o preset recomendado.

  4. 4

    Gerar

    Clique no botão e a configuração é criada como JSON bem formatado.

  5. 5

    Copie para o seu projeto

    Cole o resultado em `.eslintrc.json` e instale os plugins que ele referencia.

O que a configuração gerada contém

O gerador sempre parte de eslint:recommended e adiciona exatamente o que as suas seleções implicam:

  • env com browser e/ou node, além de es2022
  • @typescript-eslint/parser e plugin:@typescript-eslint/recommended quando o TypeScript está ativado
  • plugin:react/recommended quando o React está ativado
  • no-console e no-unused-vars definidas como warn

O resultado é um objeto JSON simples no formato clássico de .eslintrc.json, pronto para colar e ampliar com suas próprias regras.

Configuração plana vs legada

O ESLint 9 descontinuou o formato .eslintrc.* em favor da configuração plana (eslint.config.js). Principais diferenças:

Aspecto Legado (.eslintrc) Plana (eslint.config.js)
Formato JSON, YAML ou CommonJS Módulo JavaScript ESM ou CommonJS
Extende extends: ["plugin:react/recommended"] Espalhado em array: ...reactPlugin.configs.recommended
Substituições Array overrides com padrões glob Múltiplos objetos no array exportado
Globais env: { browser: true } languageOptions.globals com imports explícitos
Ignora Arquivo .eslintignore Campo ignores no array de configuração

Novos projetos devem usar configuração plana. Projetos existentes podem permanecer no legado através da linha 10.x, mas a migração é recomendada.

Ecossistema de plugins

Plugins típicos de projetos React/TS:

@typescript-eslint/eslint-plugin
@typescript-eslint/parser
eslint-plugin-react
eslint-plugin-react-hooks
eslint-plugin-jsx-a11y
eslint-plugin-import
eslint-config-prettier

Isso são seis pacotes para uma configuração moderadamente opinativa. O gerador adiciona os que você seleciona, então você instala apenas o que a configuração referencia.

Coexistência com Prettier

Prettier lida com formatação; ESLint lida com correção e estilo além da formatação. Para evitar conflitos:

  1. Instale eslint-config-prettier e adicione-o como o ÚLTIMO item em suas extensões/configuração.
  2. Ele desativa todas as regras do ESLint que entram em conflito com a saída do Prettier.
  3. Execute o Prettier separadamente (ao salvar no editor, no hook de pré-commit, no CI).

Não use eslint-plugin-prettier em novos projetos; isso desacelera o ESLint ao executar o Prettier dentro do ESLint. Separe as duas ferramentas.

Dicas para ajuste de regras

  • Comece solto, ajuste para mais rigor. Ative avisos antes de erros.
  • Substitua para testes. Arquivos de teste frequentemente precisam de no-unused-expressions relaxado e globais do Jest disponíveis.
  • Substitua para scripts. Scripts de construção podem precisar de globais do Node sem adicionar env: node globalmente.
  • Documente substituições. Cada substituição de regra merece um comentário explicando o porquê.

Configuração que combina com seu editor

O VS Code precisa da extensão ESLint instalada e configurada. Adicione estas configurações ao seu workspace para correção automática ao salvar:

{
  "editor.codeActionsOnSave": { "source.fixAll.eslint": "explicit" },
  "eslint.validate": ["javascript", "typescript", "javascriptreact", "typescriptreact"]
}

Perguntas frequentes

Para novos projetos, configuração plana (eslint.config.js). Este gerador emite o formato clássico .eslintrc.json, que o ESLint lê nativamente em modo legado; a tabela de comparação acima mostra o que muda se você migrar depois.

Sim, se você estiver usando TypeScript. O @typescript-eslint/parser e o @typescript-eslint/eslint-plugin habilitam a verificação de linting ciente de TypeScript. Para regras cientes de tipo (não apenas sintaxe), também configure o parser com project: './tsconfig.json'.

Geralmente, faltando dependências de desenvolvimento no CI. Certifique-se de que @typescript-eslint/*, plugins e a versão do ESLint correspondam entre local e CI. Use npm ci (não npm install) no CI para respeitar o lockfile.

Não. Suas seleções servem apenas para gerar a configuração; elas não são armazenadas nem compartilhadas com terceiros.

Ferramentas relacionadas

Ferramenta disponível em outros idiomas