Generatore ESLintrc

Avanti

Questo generatore crea una configurazione .eslintrc.json pronta all’uso a partire da quattro scelte: ambiente browser o Node, supporto TypeScript e supporto React. Collega eslint:recommended, i plugin TypeScript o React corrispondenti e un paio di sensate sovrascritture di regole, così puoi incollare il risultato nel tuo progetto.

Come generare una configurazione ESLint

  1. 1

    Scegli l'ambiente

    Indica se il codice gira nel browser, in Node.js o in entrambi. Il generatore imposta le voci `env` corrispondenti, più `es2022`.

  2. 2

    Attiva TypeScript

    Spunta TypeScript e il generatore aggiunge `@typescript-eslint/parser` e il plugin TypeScript consigliato.

  3. 3

    Attiva React

    Spunta React e il generatore aggiunge `eslint-plugin-react` con il suo preset consigliato.

  4. 4

    Genera

    Clicca sul pulsante e la configurazione viene creata come JSON con formattazione leggibile.

  5. 5

    Copialo nel tuo progetto

    Incolla l'output in `.eslintrc.json` e installa i plugin a cui fa riferimento.

Cosa contiene la configurazione generata

Il generatore parte sempre da eslint:recommended e aggiunge esattamente ciò che implicano le tue selezioni:

  • env con browser e/o node, più es2022
  • @typescript-eslint/parser e plugin:@typescript-eslint/recommended quando TypeScript è attivo
  • plugin:react/recommended quando React è attivo
  • no-console e no-unused-vars impostate su warn

L’output è un semplice oggetto JSON nella forma classica di .eslintrc.json, pronto da incollare e ampliare con le tue regole.

Configurazione piatta vs legacy

ESLint 9 ha deprecato il formato .eslintrc.* a favore della configurazione piatta (eslint.config.js). Differenze chiave:

Aspetto Legacy (.eslintrc) Piatta (eslint.config.js)
Formato JSON, YAML o CommonJS Modulo JavaScript ESM o CommonJS
Estende extends: ["plugin:react/recommended"] Espanso in array: ...reactPlugin.configs.recommended
Sovrascritture Array overrides con pattern glob Oggetti multipli nell’array esportato
Variabili globali env: { browser: true } languageOptions.globals con importazioni esplicite
Ignora File .eslintignore Campo ignores nell’array di configurazione

I nuovi progetti dovrebbero utilizzare la configurazione piatta. I progetti esistenti possono rimanere su legacy attraverso la linea 10.x, ma si consiglia la migrazione.

Ecosistema dei plugin

Plugin tipici per progetti 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

Sono sei pacchetti per una configurazione moderatamente opinata. Il generatore aggiunge quelli che selezioni, quindi installi solo ciò che la configurazione richiama.

Coesistenza con Prettier

Prettier gestisce il formato; ESLint gestisce la correttezza e lo stile oltre il formato. Per evitare conflitti:

  1. Installa eslint-config-prettier e aggiungilo come ultimo elemento nel tuo extends/config.
  2. Disattiva ogni regola ESLint che confligge con l’output di Prettier.
  3. Esegui Prettier separatamente (al salvataggio nell’editor, nel pre-commit hook, in CI).

Non utilizzare eslint-plugin-prettier in nuovi progetti; rallenta ESLint eseguendo Prettier all’interno di ESLint. Separa i due strumenti.

Suggerimenti per la regolazione delle regole

  • Inizia con flessibilità, stringi più tardi. Abilita avvisi prima degli errori.
  • Sovrascrivi per i test. I file di test spesso necessitano di no-unused-expressions rilassato e variabili globali Jest disponibili.
  • Sovrascrivi per gli script. Gli script di build potrebbero necessitare di variabili globali Node senza aggiungere env: node globalmente.
  • Documenta le sovrascritture. Ogni sovrascrittura di regola merita un commento che spiega il perché.

Configurazione che corrisponde al tuo editor

VS Code ha bisogno dell’estensione ESLint installata e configurata. Aggiungi questi alle impostazioni del tuo workspace per la correzione automatica al salvataggio:

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

Domande frequenti

Per i nuovi progetti, configurazione piatta (eslint.config.js). Questo generatore emette il formato classico .eslintrc.json, che ESLint legge nativamente in modalità legacy; la tabella di confronto sopra mostra cosa cambia se migri in seguito.

Sì, se stai usando TypeScript. Il @typescript-eslint/parser e il @typescript-eslint/eslint-plugin abilitano il linting consapevole di TypeScript. Per regole consapevoli dei tipi (non solo sintassi), configura anche il parser con project: './tsconfig.json'.

Di solito mancano dipendenze di sviluppo in CI. Assicurati che @typescript-eslint/*, i plugin e la versione di ESLint corrispondano tra locale e CI. Usa npm ci (non npm install) in CI per rispettare il lockfile.

No. Le tue selezioni servono solo a generare la configurazione; non vengono memorizzate né condivise con terze parti.

Strumenti correlati

Strumento disponibile in altre lingue