Générateur d'ESLintrc

Suivant

Ce générateur construit une configuration .eslintrc.json prête à l’emploi à partir de quatre choix : environnement navigateur ou Node, prise en charge de TypeScript et prise en charge de React. Il relie eslint:recommended, les plugins TypeScript ou React correspondants et quelques remplacements de règles judicieux, afin que vous puissiez coller le résultat dans votre projet.

Comment générer une configuration ESLint

  1. 1

    Choisissez l'environnement

    Indiquez si le code s'exécute dans le navigateur, dans Node.js, ou les deux. Le générateur définit les entrées `env` correspondantes, plus `es2022`.

  2. 2

    Activer TypeScript

    Cochez TypeScript et le générateur ajoute `@typescript-eslint/parser` et le plugin TypeScript recommandé.

  3. 3

    Activer React

    Cochez React et le générateur ajoute `eslint-plugin-react` avec son preset recommandé.

  4. 4

    Générer

    Cliquez sur le bouton et la configuration est générée en JSON mis en forme.

  5. 5

    Copier dans votre projet

    Collez le résultat dans `.eslintrc.json` et installez les plugins qu'il référence.

Ce que contient la configuration générée

Le générateur part toujours de eslint:recommended et ajoute exactement ce qu’impliquent vos sélections :

  • env avec browser et/ou node, plus es2022
  • @typescript-eslint/parser et plugin:@typescript-eslint/recommended lorsque TypeScript est activé
  • plugin:react/recommended lorsque React est activé
  • no-console et no-unused-vars définies sur warn

Le résultat est un simple objet JSON au format classique .eslintrc.json, prêt à coller et à enrichir avec vos propres règles.

Configuration plate vs héritée

ESLint 9 a déprécié le format .eslintrc.* au profit de la configuration plate (eslint.config.js). Principales différences :

Aspect Héritée (.eslintrc) Plate (eslint.config.js)
Format JSON, YAML ou CommonJS Module JavaScript ESM ou CommonJS
Étend extends: ["plugin:react/recommended"] Étendu dans le tableau : ...reactPlugin.configs.recommended
Remplacements Tableau overrides avec des motifs glob Plusieurs objets dans le tableau exporté
Variables globales env: { browser: true } languageOptions.globals avec des imports explicites
Ignorations Fichier .eslintignore Champ ignores dans le tableau de configuration

Les nouveaux projets doivent utiliser la configuration plate. Les projets existants peuvent rester sur l’héritée jusqu’à la version 10.x, mais la migration est recommandée.

Écosystème de plugins

Plugins typiques pour les projets 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

Cela fait six paquets pour une configuration modérément opinionnée. Le générateur ajoute ceux que vous sélectionnez, donc vous n’installez que ce que la configuration référence.

Coexistence avec Prettier

Prettier gère le formatage ; ESLint gère la correction et le style au-delà du formatage. Pour éviter les conflits :

  1. Installez eslint-config-prettier et ajoutez-le comme DERNIER élément dans vos extends/config.
  2. Cela désactive chaque règle ESLint qui entre en conflit avec la sortie de Prettier.
  3. Exécutez Prettier séparément (à l’enregistrement dans l’éditeur, dans le hook de pré-commit, dans CI).

Ne pas utiliser eslint-plugin-prettier dans les nouveaux projets ; cela ralentit ESLint en exécutant Prettier à l’intérieur d’ESLint. Séparez les deux outils.

Conseils pour l’ajustement des règles

  • Commencez lâche, resserrez progressivement. Activez les avertissements avant les erreurs.
  • Remplacez pour les tests. Les fichiers de test ont souvent besoin d’une relaxation de no-unused-expressions et des globals Jest disponibles.
  • Remplacez pour les scripts. Les scripts de construction peuvent nécessiter des globals Node sans ajouter env: node globalement.
  • Documentez les remplacements. Chaque remplacement de règle mérite un commentaire expliquant pourquoi.

Configuration qui correspond à votre éditeur

VS Code nécessite l’extension ESLint installée et configurée. Ajoutez ceci à vos paramètres de workspace pour auto-correction à l’enregistrement :

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

Questions fréquentes

Pour les nouveaux projets, configuration plate (eslint.config.js). Ce générateur émet le format classique .eslintrc.json, que ESLint lit nativement en mode hérité ; le tableau comparatif ci-dessus montre ce qui change si vous migrez plus tard.

Oui, si vous utilisez TypeScript. Le @typescript-eslint/parser et le @typescript-eslint/eslint-plugin permettent un linting conscient de TypeScript. Pour des règles conscientes des types (pas seulement de la syntaxe), configurez également le parser avec project: './tsconfig.json'.

Généralement à cause de dépendances de développement manquantes dans CI. Assurez-vous que @typescript-eslint/*, les plugins et la version d’ESLint correspondent entre local et CI. Utilisez npm ci (pas npm install) dans CI pour respecter le fichier de verrouillage.

Non. Vos sélections ne servent qu’à générer la configuration ; elles ne sont ni enregistrées ni partagées avec des tiers.

Outils similaires

Outil disponible dans d’autres langues