ESLintrc-generator

Volgende

Deze generator bouwt een gebruiksklare .eslintrc.json-configuratie op basis van vier keuzes: browser- of Node-omgeving, TypeScript-ondersteuning en React-ondersteuning. Hij verbindt eslint:recommended, de bijbehorende TypeScript- of React-plugins en een paar verstandige regeloverstellingen, zodat u het resultaat direct in uw project kunt plakken.

Hoe je een ESLint-configuratie genereert

  1. 1

    Kies de omgeving

    Kies of de code in de browser, in Node.js, of in beide draait. De generator stelt de bijbehorende `env`-items in, plus `es2022`.

  2. 2

    TypeScript inschakelen

    Vink TypeScript aan en de generator voegt `@typescript-eslint/parser` en de aanbevolen TypeScript-plugin toe.

  3. 3

    React inschakelen

    Vink React aan en de generator voegt `eslint-plugin-react` met zijn aanbevolen preset toe.

  4. 4

    Genereren

    Klik op de knop en de configuratie wordt opgesteld als overzichtelijk opgemaakte JSON.

  5. 5

    Kopieer naar uw project

    Plak de uitvoer in `.eslintrc.json` en installeer de plugins waarnaar de configuratie verwijst.

Wat de gegenereerde configuratie bevat

De generator start altijd vanuit eslint:recommended en voegt precies toe wat uw keuzes inhouden:

  • env met browser en/of node, plus es2022
  • @typescript-eslint/parser en plugin:@typescript-eslint/recommended wanneer TypeScript aan staat
  • plugin:react/recommended wanneer React aan staat
  • no-console en no-unused-vars ingesteld op warn

De uitvoer is een eenvoudig JSON-object in de klassieke .eslintrc.json-vorm, klaar om te plakken en uit te breiden met uw eigen regels.

Flat-config versus legacy

ESLint 9 heeft het .eslintrc.*-formaat afgeschaft ten gunste van de vlakke configuratie (eslint.config.js). Belangrijke verschillen:

Aspect Legacy (.eslintrc) Vlak (eslint.config.js)
Formaat JSON, YAML of CommonJS ESM- of CommonJS-JavaScript-module
Uitbreiden extends: ["plugin:react/recommended"] Uitgespreid in array: ...reactPlugin.configs.recommended
Overrides overrides-array met glob-patronen Meerdere objecten in de geëxporteerde array
Globals env: { browser: true } languageOptions.globals met expliciete imports
Negeren .eslintignore-bestand ignores-veld in de configuratie-array

Nieuwe projecten zouden de vlakke configuratie moeten gebruiken. Bestaande projecten kunnen tot en met de 10.x-lijn op legacy blijven, maar migratie wordt aanbevolen.

Plugin-ecosysteem

Typische plugins voor een React/TS-project:

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

Dat zijn zes pakketten voor een gematigd uitgesproken configuratie. De generator voegt de plugins toe die u selecteert, dus u installeert alleen waar de configuratie naar verwijst.

Samenleven met Prettier

Prettier verzorgt de opmaak; ESLint zorgt voor correctheid en stijl buiten de opmaak om. Om conflicten te voorkomen:

  1. Installeer eslint-config-prettier en voeg deze toe als het laatste item in uw extends/config.
  2. Het schakelt alle ESLint-regels uit die in conflict zijn met de uitvoer van Prettier.
  3. Voer Prettier apart uit (bij het opslaan in de editor, tijdens de pre-commit-fase of in het CI-proces).

Gebruik eslint-plugin-prettier niet in nieuwe projecten, omdat dit ESLint vertraagt doordat Prettier binnen ESLint wordt uitgevoerd. Gebruik beide tools apart.

Tips voor het afstellen van regels

  • Begin los, draai geleidelijk strakker aan. Schakel waarschuwingen in vóór fouten.
  • Override voor tests. Testbestanden hebben vaak een versoepelde no-unused-expressions en beschikbare Jest-globals nodig.
  • Override voor scripts. Buildscripts hebben mogelijk Node-globals nodig zonder env: node globaal toe te voegen.
  • Documenteer overrides. Elke regel-override verdient een commentaar dat uitlegt waarom.

Configuratie die past bij uw editor

VS Code vereist de ESLint-extensie geïnstalleerd en geconfigureerd. Voeg deze toe aan uw werkruimte-instellingen voor automatische correcties bij het opslaan van bestanden.

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

Veelgestelde vragen

Voor nieuwe projecten wordt de platte configuratie gebruikt (eslint.config.js). Deze generator levert het klassieke .eslintrc.json-formaat, dat ESLint van nature in legacy-modus leest; de vergelijkingstabel hierboven laat zien wat er verandert als u later migreert.

Ja, als u TypeScript gebruikt: de parameters @typescript-eslint/parser en @typescript-eslint/eslint-plugin ondersteunen TypeScript-gevoelige foutopsporing. Voor regels die gebaseerd zijn op typekenmerken (niet alleen op syntaxis) dient u de parser ook te configureren met project: './tsconfig.json'.

Meestal ontbreken afhankelijkheden voor de ontwikkeling bij CI. Zorg ervoor dat @typescript-eslint/*, de plugins en de ESLint-versie overeenkomen tussen de lokale omgeving en CI. Gebruik npm ci (niet npm install) in CI om de lockfile te respecteren.

Nee. Uw keuzes worden alleen gebruikt om de configuratie te genereren; ze worden niet opgeslagen en niet gedeeld met derden.

Gerelateerde tools

Tool beschikbaar in andere talen