Generador de configuración de ESLint

Elige el lenguaje, dónde se ejecuta el código y unas cuantas reglas populares, y copia un eslint.config.js listo para ESLint 9 o posterior. La primera línea es el comando npm que instala justo los paquetes que importa la configuración.

Lenguaje
El código se ejecuta en
Módulos en archivos .js
Separadas por espacios o comas. Una / final indica carpeta.

Guárdalo en la raíz del proyecto y ejecuta npx eslint . — con CommonJS, llama al archivo eslint.config.mjs como indica su primera línea.

Funciona en tu navegador: nada de lo que escribes se envía a ningún sitio.

Cómo se usa

  1. Elige JavaScript o TypeScript y dónde se ejecuta el código.
  2. Indica si los archivos .js usan import o require.
  3. Marca las reglas que quieras y, si formateas con Prettier, la opción de Prettier.
  4. Ejecuta el comando npm install --save-dev … de la primera línea, guarda el archivo en la raíz del proyecto y lanza npx eslint ..

Cómo funciona

El resultado es un array exportado con export default:

  • un objeto solo con ignores: exclusiones globales para las carpetas de build;
  • js.configs.recommended de @eslint/js (y ...tseslint.configs.recommended para TypeScript);
  • tu bloque: los patrones de archivos, ecmaVersion: 'latest', las globales y las reglas elegidas;
  • con CommonJS, un bloque que pone sourceType: 'commonjs' a los archivos .js (ESLint ya trata .cjs como CommonJS);
  • eslintConfigPrettier al final, si lo eliges.

Ejemplo

Los valores por defecto (JavaScript, navegador, módulos ES, reglas recomendadas, eqeqeq, prefer-const, variables sin usar como avisos) dan:

// npm install --save-dev eslint @eslint/js globals
import js from '@eslint/js';
import globals from 'globals';

export default [
  { ignores: ['dist/', 'build/', 'coverage/'] },
  js.configs.recommended,
  {
    files: ['**/*.{js,mjs,cjs}'],
    languageOptions: {
      ecmaVersion: 'latest',
      globals: globals.browser,
    },
    rules: {
      eqeqeq: ['error', 'always'],
      'prefer-const': 'error',
      'no-unused-vars': 'warn',
    },
  },
];

Consejos

  • Añade "lint": "eslint ." a los scripts de package.json para que todo el equipo use el mismo comando.
  • npx eslint . --fix corrige lo que se puede arreglar solo, como un let que debería ser const.
  • Deja el formato a Prettier y la calidad del código a ESLint: para eso está la opción de Prettier.

Preguntas frecuentes

¿Qué es el formato flat config?

Desde ESLint 9 la configuración es un archivo JavaScript, eslint.config.js, que exporta un array de objetos. Cada objeto puede indicar a qué archivos se aplica, qué parser y globales usar y qué reglas activar. Los antiguos archivos .eslintrc ya no se leen por defecto.

¿Por qué la configuración importa el paquete globals?

ESLint no sabe qué variables globales hay en tu entorno. El paquete globals las enumera, por ejemplo window y document para el navegador o process y __dirname para Node.js, para que no-undef no las marque.

¿Qué aporta typescript-eslint?

Un parser que entiende la sintaxis de TypeScript y un conjunto de reglas recomendadas. También desactiva reglas básicas que TypeScript ya comprueba; por eso la regla de variables sin usar pasa a ser @typescript-eslint/no-unused-vars.

¿Por qué la configuración de Prettier va la última?

eslint-config-prettier desactiva las reglas de formato que chocarían con Prettier. Los elementos posteriores del array sobrescriben a los anteriores, así que debe ir detrás de todos los conjuntos cuyas reglas apaga.

¿Por qué eslint.config.mjs en proyectos CommonJS?

La configuración usa import y export. Node.js trata un archivo .js como CommonJS salvo que package.json tenga "type": "module", así que en un proyecto CommonJS el archivo necesita la extensión .mjs.

Más en Desarrollo

Todas las herramientas de la categoría: Desarrollo ·Actualizado el 4 de noviembre de 2026

Opciones de privacidad

Google Analytics nos muestra qué herramientas se usan y si funcionan. Puede usar cookies. Tu elección se guarda en este navegador.