Generador de ESLintrc

Siguiente

Este generador crea una configuración .eslintrc.json lista para usar a partir de cuatro opciones: entorno de navegador o de Node, soporte de TypeScript y soporte de React. Conecta eslint:recommended, los plugins de TypeScript o de React correspondientes y un par de anulaciones de reglas sensatas, para que puedas pegar el resultado en tu proyecto.

Cómo generar una configuración de ESLint

  1. 1

    Elige el entorno

    Indica si el código se ejecuta en el navegador, en Node.js o en ambos. El generador establece las entradas `env` correspondientes, más `es2022`.

  2. 2

    Activa TypeScript

    Marca TypeScript y el generador añade `@typescript-eslint/parser` y el plugin de TypeScript recomendado.

  3. 3

    Activa React

    Marca React y el generador añade `eslint-plugin-react` con su preset recomendado.

  4. 4

    Generar

    Pulsa el botón y la configuración se genera como JSON con un formato legible.

  5. 5

    Cópialo en tu proyecto

    Pega el resultado en `.eslintrc.json` e instala los plugins que referencia.

Qué contiene la configuración generada

El generador parte siempre de eslint:recommended y añade exactamente lo que implican tus selecciones:

  • env con browser y/o node, más es2022
  • @typescript-eslint/parser y plugin:@typescript-eslint/recommended cuando TypeScript está activado
  • plugin:react/recommended cuando React está activado
  • no-console y no-unused-vars establecidas en warn

El resultado es un objeto JSON sencillo con la forma clásica de .eslintrc.json, listo para pegar y ampliar con tus propias reglas.

Configuración plana vs heredada

ESLint 9 desaprobó el formato .eslintrc.* a favor de la configuración plana (eslint.config.js). Diferencias clave:

Aspecto Heredado (.eslintrc) Plana (eslint.config.js)
Formato JSON, YAML o CommonJS Módulo JavaScript ESM o CommonJS
Extiende extends: ["plugin:react/recommended"] Expandido en array: ...reactPlugin.configs.recommended
Sobreescrituras Array overrides con patrones glob Múltiples objetos en el array exportado
Variables globales env: { browser: true } languageOptions.globals con imports explícitos
Ignora Archivo .eslintignore Campo ignores en el array de configuración

Los nuevos proyectos deben usar configuración plana. Los proyectos existentes pueden permanecer en heredado a través de la línea 10.x, pero se recomienda la migración.

Ecosistema de plugins

Plugins típicos para proyectos 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

Eso son seis paquetes para una configuración con criterios moderadamente marcados. El generador añade los que selecciones, así que solo instalas lo que la configuración referencia.

Coexistencia con Prettier

Prettier maneja el formato; ESLint maneja la corrección y el estilo más allá del formato. Para evitar conflictos:

  1. Instala eslint-config-prettier y añádelo como el ÚLTIMO elemento en tus extends/config.
  2. Esto desactiva todas las reglas de ESLint que entran en conflicto con la salida de Prettier.
  3. Ejecuta Prettier por separado (al guardar en el editor, en el gancho de pre-commit, en CI).

No uses eslint-plugin-prettier en nuevos proyectos; ralentiza ESLint al ejecutar Prettier dentro de ESLint. Separa las dos herramientas.

Consejos para ajustar reglas

  • Comienza laxo, ajusta más estricto. Habilita advertencias antes de errores.
  • Sobreescribe para pruebas. Los archivos de prueba a menudo necesitan no-unused-expressions relajado y globals de Jest disponibles.
  • Sobreescribe para scripts. Los scripts de construcción pueden necesitar globals de Node sin añadir env: node globalmente.
  • Documenta las sobreescrituras. Cada sobreescritura de regla merece un comentario explicando por qué.

Configuración que coincide con tu editor

VS Code necesita la extensión ESLint instalada y configurada. Añade esto a la configuración de tu espacio de trabajo para auto-corrección al guardar:

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

Preguntas frecuentes

Para nuevos proyectos, configuración plana (eslint.config.js). Este generador emite el formato clásico .eslintrc.json, que ESLint lee de forma nativa en modo heredado; la tabla comparativa de arriba muestra qué cambia si migras más adelante.

Sí, si estás usando TypeScript. El @typescript-eslint/parser y @typescript-eslint/eslint-plugin habilitan el linting con conocimiento de TypeScript. Para reglas que tienen en cuenta los tipos (no solo la sintaxis), configura también el parser con project: './tsconfig.json'.

Generalmente faltan dependencias de desarrollo en CI. Asegúrate de que @typescript-eslint/*, los complementos y la versión de ESLint coincidan entre local y CI. Usa npm ci (no npm install) en CI para respetar el archivo de bloqueo.

No. Tus selecciones solo se usan para generar la configuración; no se almacenan ni se comparten con terceros.

Herramientas relacionadas

Herramienta disponible en otros idiomas