Service en ligne 100% Gratuit Utilitaires Web AngularForAll

- Générateur Config ESLint & Prettier

Génerateur Eslint Config Angular Config React Config Node Config Typescript Eslintrc Json Generateur Eslint Prettier Eslint Prettier Vscode Settings Setup

Générez vos fichiers .eslintrc.json et .prettierrc selon votre stack (React, Angular, Node, Vue). Flat Config v9 supporté. Copiez ou téléchargez vos configs prêtes à l'emploi.

⚙️

Générateur ESLint & Prettier Config

🔧 Configuration


✨ Options Prettier
💡 Les configs se régénèrent en temps réel à chaque modification.

ESLint & Prettier — Guide complet pour vos projets JS/TS

ESLint et Prettier forment le duo incontournable de tout projet JavaScript ou TypeScript sérieux. ESLint détecte les erreurs logiques, les mauvaises pratiques et les violations de style, tandis que Prettier s'occupe exclusivement du formatage du code — indentation, guillemets, virgules… Ce guide vous explique comment configurer ces deux outils de façon optimale selon votre stack, les intégrer à votre éditeur et automatiser leur exécution dans vos pipelines CI/CD.

Pourquoi combiner ESLint et Prettier ?

ESLint peut également formater du code via ses règles de style, mais il est conçu avant tout pour l'analyse statique. Prettier, lui, est un formateur opinionated : il prend vos options de base (largeur de ligne, guillemets, points-virgules) et reformate tout le fichier de façon déterministe. Les deux outils sont complémentaires :

Outil Rôle principal Ce qu'il fait Ce qu'il ne fait pas
ESLint Linter (analyse statique) Détecte bugs, variables inutilisées, imports manquants Formater le code proprement
Prettier Formateur de code Indentation, guillemets, longueur de lignes Détecter les bugs ou mauvaises pratiques
Les deux ensemble Qualité + cohérence Code propre, lisible, sans bugs de style

Le package eslint-config-prettier désactive toutes les règles ESLint qui entrent en conflit avec Prettier, permettant aux deux outils de coexister sans se contredire.

Installation et configuration initiale

La procédure d'installation varie selon le format de config ESLint que vous ciblez. La Flat Config (eslint.config.js) est le nouveau standard depuis ESLint v9, mais le format JSON (.eslintrc.json) reste très utilisé pour sa simplicité.

# Installation de base (format JSON, TypeScript)
npm install --save-dev \
  eslint \
  @typescript-eslint/eslint-plugin \
  @typescript-eslint/parser \
  prettier \
  eslint-config-prettier \
  eslint-plugin-prettier

# Initialiser ESLint (assistant interactif)
npx eslint --init
// .eslintrc.json — Config TypeScript de base
{
  "parser": "@typescript-eslint/parser",
  "parserOptions": {
    "ecmaVersion": 2022,
    "sourceType": "module",
    "project": "./tsconfig.json"
  },
  "plugins": ["@typescript-eslint", "prettier"],
  "extends": [
    "eslint:recommended",
    "plugin:@typescript-eslint/recommended",
    "prettier"  // ← Toujours EN DERNIER pour désactiver les conflits
  ],
  "rules": {
    "prettier/prettier": "error",
    "@typescript-eslint/no-unused-vars": ["error", { "argsIgnorePattern": "^_" }],
    "@typescript-eslint/explicit-function-return-type": "warn"
  }
}

Configuration React + TypeScript

Pour un projet React avec TypeScript, ajoutez les plugins spécifiques à React et aux hooks. La config Airbnb est populaire dans l'écosystème React car elle couvre des règles d'accessibilité JSX et de bonnes pratiques React.

# Dépendances supplémentaires pour React + TypeScript
npm install --save-dev \
  eslint-plugin-react \
  eslint-plugin-react-hooks \
  eslint-plugin-jsx-a11y \
  eslint-import-resolver-typescript
// .eslintrc.json pour React + TypeScript
{
  "parser": "@typescript-eslint/parser",
  "parserOptions": {
    "ecmaVersion": 2022,
    "sourceType": "module",
    "ecmaFeatures": { "jsx": true }
  },
  "plugins": ["react", "react-hooks", "jsx-a11y", "@typescript-eslint", "prettier"],
  "extends": [
    "eslint:recommended",
    "plugin:react/recommended",
    "plugin:react/jsx-runtime",         // React 17+ (plus besoin d'importer React)
    "plugin:react-hooks/recommended",
    "plugin:jsx-a11y/recommended",
    "plugin:@typescript-eslint/recommended",
    "prettier"
  ],
  "settings": {
    "react": { "version": "detect" }
  },
  "rules": {
    "react/prop-types": "off",          // TypeScript gère les types
    "react-hooks/rules-of-hooks": "error",
    "react-hooks/exhaustive-deps": "warn"
  }
}

Configuration Angular avec @angular-eslint

Angular dispose de son propre écosystème ESLint via le package @angular-eslint. La méthode recommandée est d'utiliser la schematic Angular CLI qui configure tout automatiquement :

# Ajouter ESLint à un projet Angular existant
ng add @angular-eslint/schematics

# Migrate depuis TSLint (projets anciens)
ng g @angular-eslint/schematics:convert-tslint-to-eslint

# Vérifier la configuration générée
cat .eslintrc.json
// .eslintrc.json Angular (extrait des règles clés)
{
  "root": true,
  "overrides": [
    {
      "files": ["*.ts"],
      "parser": "@typescript-eslint/parser",
      "parserOptions": { "project": ["tsconfig.json"] },
      "extends": [
        "plugin:@angular-eslint/recommended",
        "plugin:@angular-eslint/template/process-inline-templates",
        "prettier"
      ],
      "rules": {
        "@angular-eslint/directive-selector": ["error", { "type": "attribute", "prefix": "app", "style": "camelCase" }],
        "@angular-eslint/component-selector": ["error", { "type": "element", "prefix": "app", "style": "kebab-case" }]
      }
    },
    {
      "files": ["*.html"],
      "extends": ["plugin:@angular-eslint/template/recommended"]
    }
  ]
}

Flat Config ESLint v9 — le nouveau format

Depuis ESLint v9, le Flat Config (eslint.config.js ou eslint.config.mjs) remplace le format .eslintrc.*. Il utilise des imports ES natifs et supprime le concept de cascade de configs, ce qui le rend plus prévisible :

// eslint.config.js — Flat Config (ESLint v9+)
import js from '@eslint/js';
import typescript from '@typescript-eslint/eslint-plugin';
import tsParser from '@typescript-eslint/parser';
import prettier from 'eslint-config-prettier';

export default [
  // Config de base JS
  js.configs.recommended,

  // Config TypeScript
  {
    files: ['**/*.ts', '**/*.tsx'],
    languageOptions: {
      parser: tsParser,
      parserOptions: {
        project: './tsconfig.json',
        ecmaVersion: 2022,
        sourceType: 'module',
      },
    },
    plugins: { '@typescript-eslint': typescript },
    rules: {
      ...typescript.configs.recommended.rules,
      '@typescript-eslint/no-unused-vars': ['error', { argsIgnorePattern: '^_' }],
    },
  },

  // Désactiver les règles qui conflictent avec Prettier (TOUJOURS EN DERNIER)
  prettier,

  // Fichiers à ignorer
  {
    ignores: ['dist/**', 'node_modules/**', 'coverage/**', '*.min.js'],
  },
];
Migration : Pour migrer depuis .eslintrc.json, utilisez npx @eslint/migrate-config .eslintrc.json. Le Flat Config est incompatible avec l'ancien format — vous ne pouvez pas les mélanger dans un même projet.

Toutes les options Prettier décryptées

Prettier est volontairement peu configurable. Voici les options disponibles et leurs effets concrets :

// .prettierrc — Toutes les options disponibles commentées
{
  "printWidth": 100,         // Longueur max d'une ligne avant retour à la ligne
  "tabWidth": 2,             // Nombre d'espaces par niveau d'indentation
  "useTabs": false,          // true = tabulations, false = espaces
  "semi": true,              // Ajouter ; en fin de ligne
  "singleQuote": true,       // Guillemets simples (false = doubles)
  "quoteProps": "as-needed", // Guillemets sur les clés d'objets : "as-needed"|"consistent"|"preserve"
  "jsxSingleQuote": false,   // Guillemets dans JSX (false = doubles recommandés)
  "trailingComma": "all",    // Virgule finale : "all"|"es5"|"none"
  "bracketSpacing": true,    // Espaces dans { foo: bar } (false = {foo: bar})
  "bracketSameLine": false,  // > de JSX sur la même ligne que le dernier attribut
  "arrowParens": "always",   // Parenthèses arrow : "always" = (x) => x | "avoid" = x => x
  "endOfLine": "lf",         // Fin de ligne : "lf"|"crlf"|"cr"|"auto"
  "singleAttributePerLine": false // Un attribut JSX/HTML par ligne
}

Intégration VS Code — format on save

L'intégration VS Code est essentielle pour que le formatage s'applique automatiquement à chaque sauvegarde. Installez les extensions ESLint et Prettier - Code formatter, puis configurez .vscode/settings.json :

// .vscode/settings.json
{
  "editor.defaultFormatter": "esbenp.prettier-vscode",
  "editor.formatOnSave": true,
  "editor.formatOnPaste": false,
  "editor.codeActionsOnSave": {
    "source.fixAll.eslint": "explicit"  // Correction ESLint à la sauvegarde
  },
  "[javascript]": {
    "editor.defaultFormatter": "esbenp.prettier-vscode"
  },
  "[typescript]": {
    "editor.defaultFormatter": "esbenp.prettier-vscode"
  },
  "[typescriptreact]": {
    "editor.defaultFormatter": "esbenp.prettier-vscode"
  },
  "[json]": {
    "editor.defaultFormatter": "esbenp.prettier-vscode"
  },
  "eslint.validate": ["javascript", "javascriptreact", "typescript", "typescriptreact"]
}
Conseil équipe : Committez .vscode/settings.json dans votre repo pour que tous les membres de l'équipe aient la même configuration d'éditeur. Ajoutez-le aussi à .vscode/extensions.json avec les extensions recommandées.

Scripts npm et intégration CI/CD

Ajoutez des scripts npm pour lancer ESLint et Prettier manuellement ou dans vos pipelines. Le flag --exit-code de Prettier fait échouer le processus si des fichiers ne sont pas formatés — parfait pour bloquer un merge request.

// package.json — Scripts recommandés
{
  "scripts": {
    "lint": "eslint . --ext .ts,.tsx,.js,.jsx",
    "lint:fix": "eslint . --ext .ts,.tsx,.js,.jsx --fix",
    "format": "prettier --write \"src/**/*.{ts,tsx,js,jsx,json,css,scss,md}\"",
    "format:check": "prettier --check \"src/**/*.{ts,tsx,js,jsx,json,css,scss,md}\"",
    "lint:all": "npm run lint && npm run format:check"
  }
}
# .github/workflows/lint.yml — GitHub Actions
name: Lint & Format Check

on: [push, pull_request]

jobs:
  lint:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: '20'
          cache: 'npm'
      - run: npm ci
      - run: npm run lint        # ESLint
      - run: npm run format:check # Prettier (sans --write)

Automatisation avec Husky et lint-staged

Husky ajoute des git hooks pour lancer ESLint et Prettier avant chaque commit. lint-staged limite l'analyse aux fichiers modifiés, rendant les pré-commits ultra-rapides même sur de gros projets.

# Installation
npm install --save-dev husky lint-staged

# Initialiser Husky
npx husky init

# Le hook pre-commit est créé dans .husky/pre-commit
echo "npx lint-staged" > .husky/pre-commit
// package.json — Configuration lint-staged
{
  "lint-staged": {
    "*.{ts,tsx}": [
      "eslint --fix",
      "prettier --write"
    ],
    "*.{js,jsx}": [
      "eslint --fix",
      "prettier --write"
    ],
    "*.{json,css,scss,md}": [
      "prettier --write"
    ]
  }
}
Checklist configuration ESLint + Prettier :
  • Installer eslint-config-prettier et le mettre EN DERNIER dans extends
  • Configurer .eslintignore et .prettierignore (node_modules, dist, build)
  • Ajouter les extensions VS Code ESLint et Prettier
  • Configurer .vscode/settings.json avec formatOnSave: true
  • Ajouter les scripts npm lint, lint:fix, format, format:check
  • Configurer Husky + lint-staged pour les pré-commits
  • Ajouter une étape lint dans le pipeline CI/CD
  • Committer les fichiers de config dans le repo

FAQ — ESLint & Prettier

eslint-config-prettier désactive les règles ESLint qui entrent en conflit avec Prettier — c'est toujours nécessaire. eslint-plugin-prettier fait apparaître les erreurs Prettier comme des erreurs ESLint dans votre éditeur — pratique mais optionnel. Si votre éditeur supporte Prettier nativement (via l'extension), vous n'avez pas besoin du plugin. La recommandation officielle Prettier est d'utiliser eslint-config-prettier seul.

.eslintrc.json est l'ancien format (legacy), supporté jusqu'à ESLint v8. eslint.config.js est le nouveau Flat Config introduit en ESLint v9, obligatoire en ESLint v10+. Le Flat Config utilise des imports ES natifs, n'a pas de cascade implicite, et est plus explicite. Pour les nouveaux projets ESLint v9+, utilisez le Flat Config. Pour les projets existants ESLint v8, restez sur JSON ou migrez avec npx @eslint/migrate-config.

Oui, via des commentaires inline. Utilisez-les avec parcimonie — abus = perte de bénéfice du linting.
// eslint-disable-next-line @typescript-eslint/no-explicit-any
const data: any = fetchRawData();

/* eslint-disable no-console */
console.log('Debug temporaire');
/* eslint-enable no-console */

Prettier supporte HTML, CSS, SCSS, Less, et même les templates Angular/Vue nativement. Il suffit d'inclure ces extensions dans votre commande : prettier --write "**/*.{html,css,scss}". Pour les templates Angular inline, @angular-eslint/template/prettier permet un formatage plus précis des expressions Angular dans les templates.

Airbnb : le plus strict et complet, populaire en React. Couvre JSX, imports, accessibilité. Bon choix pour des équipes qui veulent une discipline forte.
Standard : sans point-virgule par convention (no-semi), plus permissif, populaire en Node.js. Pas de config à écrire.
XO : opinionated comme Prettier mais pour le linting. Très peu de config, intègre TypeScript et Prettier nativement. Excellent pour les petits projets ou bibliothèques.
Pour les nouveaux projets Angular ou React en 2025+, recommended + @typescript-eslint/strict + Prettier est souvent le meilleur compromis entre rigueur et pragmatisme.

Créez un package npm interne @mon-org/eslint-config qui exporte votre config de base. Chaque sous-projet l'étend :
// packages/eslint-config/index.js
module.exports = {
  extends: ['eslint:recommended', 'plugin:@typescript-eslint/recommended', 'prettier'],
  rules: { /* règles communes */ }
};

// apps/mon-app/.eslintrc.json
{ "extends": ["@mon-org/eslint-config"] }
Avec le Flat Config (v9+), une approche plus simple consiste à définir une config dans eslint.config.js à la racine du monorepo et l'importer dans les sous-projets.

Conclusion

Configurer ESLint et Prettier correctement en début de projet est un investissement qui se rentabilise rapidement : moins de revues de code sur le style, moins de bugs évidents, et une codebase cohérente même avec de nombreux contributeurs. Utilisez ce générateur pour démarrer avec une config adaptée à votre stack, puis affinez progressivement les règles en fonction des besoins de votre équipe.

N'oubliez pas d'automatiser le linting via Husky + lint-staged pour les pré-commits et de l'intégrer à votre pipeline CI/CD pour bloquer les merges non conformes. Consultez la documentation officielle ESLint et Prettier Docs pour les options avancées.

Partager