Vous avez déjà ouvert une pull request et découvert un débat de trois commentaires sur le placement d’un point-virgule ? Ou passé vingt minutes à traquer un bug qui n’était qu’une variable mal nommée ? C’est exactement ce genre de friction qu’ESLint fait disparaître. Voyons ensemble ce qu’est cet outil, à quoi il sert, comment l’installer et le configurer en 2026 (la configuration a beaucoup changé), et pourquoi le maîtriser est un vrai atout quand on travaille en freelance.
Qu’est-ce qu’ESLint ?
ESLint est un « linter » pour JavaScript. Derrière ce mot un peu jargon se cache une idée simple : c’est un outil qui analyse statiquement votre code (statically analyzes code), sans l’exécuter, pour repérer erreurs, mauvaises pratiques et incohérences de style. Il lit votre code, le transforme en arbre syntaxique (AST), puis vérifie qu’il respecte un ensemble de règles.
Le terme « lint » vient d’un vieil outil Unix qui retirait les peluches d’un tissu ; ici, on retire les peluches du code. ESLint a été créé par Nicholas C. Zakas en 2013. C’est aujourd’hui un projet open source (open source project) gouverné par l’OpenJS Foundation, et de loin le JavaScript linter le plus utilisé de l’écosystème, avec des dizaines de millions de téléchargements chaque semaine sur npm.
Un point important : ESLint ne juge pas votre logique métier. Il veille sur la qualité du code source (source code quality) au sens technique : code mort, variables inutilisées, comparaisons douteuses, conventions non respectées.
À quoi sert ESLint au quotidien ?
Concrètement, ESLint sert à deux choses, surtout.
D’abord, trouver et corriger les problèmes avant qu’ils ne deviennent des bugs. ESLint vous signale en direct, dans votre éditeur, une variable jamais utilisée, un await oublié ou un == là où vous vouliez ===.
C’est un retour immédiat sur la qualité du code, pendant que vous écrivez, pas trois jours plus tard en revue de code.
Ensuite, uniformiser le code d’une équipe. Sur un projet à plusieurs, chacun a ses habitudes. ESLint impose des conventions partagées, ce qui rend le code lisible quelle que soit la personne qui l’a écrit. Fini les discussions stériles sur les points-virgules.
Les bénéfices se cumulent : moins de bugs, des revues plus rapides (on parle du fond, pas de la forme), un onboarding facilité pour les nouveaux arrivants et un alignement naturel sur les bonnes pratiques JavaScript. Pour une équipe, c’est un filet de sécurité ; pour un développeur seul, un correcteur exigeant et bienveillant.
Quels problèmes ESLint repère-t-il, concrètement ? Les grands classiques d’abord : variables déclarées mais jamais utilisées, variables employées avant d’être définies, code mort jamais atteint, imports en double.
Autant de petites failles invisibles à la lecture, qui finissent par coûter cher en bugs et en heures de débogage. ESLint les attrape AVANT qu’elles n’atteignent la production.
Comment installer et configurer ESLint ?
Passons à la pratique. Bonne nouvelle : l’installation tient en une commande. Attention toutefois, la configuration d’ESLint a radicalement changé. Depuis la version 9 (2024), le format par défaut est le « flat config » (un fichier eslint.config.js), et la version 10, sortie début 2026, a supprimé définitivement l’ancien format .eslintrc.
Si vous tombez sur un tutoriel qui parle de .eslintrc.json, méfiez-vous : il est périmé.
Pour démarrer, placez-vous à la racine de votre projet et lancez l’assistant officiel :
npm init @eslint/config@latest
Il vous pose quelques questions (type de projet, framework, TypeScript ou non), génère un fichier eslint.config.js prêt à l’emploi et installe les dépendances. Voici à quoi ressemble un fichier de configuration minimal :
// eslint.config.js
import { defineConfig } from "eslint/config";
import js from "@eslint/js";
export default defineConfig([
js.configs.recommended,
{
rules: {
semi: "error",
"prefer-const": "error",
},
},
]);
Le tableau contient des objets de configuration. Ici, on active le jeu de règles recommandé, puis on ajoute deux règles maison. Chaque règle reçoit un niveau de sévérité : « off », « warn » ou « error ».
Vous n’êtes d’ailleurs pas obligé de tout écrire à la main. La plupart des projets partent d’une configuration partagée (« shareable config ») prête à l’emploi : le jeu de règles recommandé par ESLint, celui d’un framework comme React ou Next.js, ou le guide de style d’une entreprise.
Vous l’étendez ensuite avec vos propres ajustements, en activant, désactivant ou paramétrant les règles une à une selon les besoins du projet. C’est tout l’intérêt d’un outil pluggable : vous partez d’une base solide, sans réinventer la roue.
Besoin d’aller plus loin ? ESLint est entièrement personnalisable (custom rules) : vous pouvez ajouter des plugins (React, import, accessibilité), brancher un parser dédié comme @typescript-eslint/parser pour TypeScript, ou écrire vos propres règles.
Intégrer ESLint à votre workflow
Installer ESLint, c’est bien. L’intégrer à votre environnement de développement, c’est mieux. Plusieurs niveaux :
Dans l’éditeur d’abord : l’extension ESLint pour VS Code (ou votre IDE) souligne les problèmes en direct. C’est la boucle de rétroaction la plus courte qui soit : vous voyez l’erreur à l’instant où vous la créez.
En ligne de commande ensuite. Un simple npx eslint . analyse tout le projet. Et avec l’option –fix, ESLint applique des corrections automatiques pour tout ce qui peut l’être :
npx eslint . # signale les problèmes
npx eslint . --fix # corrige ce qui peut l'être
Pensez à ajouter un script dans votre package.json :
"scripts": {
"lint": "eslint ."
}
Enfin, l’étape qui fait la différence en équipe : automatiser. Un hook de pré-commit (avec Husky et lint-staged) lance ESLint avant chaque commit ; surtout, intégrez-le à votre pipeline d’intégration continue.
Le lint devient alors une barrière de qualité : aucune ligne ne part en production sans avoir été vérifiée.
Une précision utile : ESLint et Prettier ne font pas le même travail. ESLint s’occupe de la qualité du code, Prettier du formatage pur (indentation, retours à la ligne). Les deux se combinent très bien, et c’est le duo le plus répandu de l’écosystème.
ESLint face aux autres linters
ESLint n’est ni le premier linter JavaScript, ni le seul. D’où vient-il, et face à quoi ?
Historiquement, il succède à JSLint (très rigide, peu configurable) et à JSHint (plus souple). ESLint les a largement supplantés grâce à un principe : tout y est « pluggable ». Son immense catalogue de plugins et de règles communautaires lui permet de couvrir à peu près n’importe quel framework ou besoin. C’est cette extensibilité qui en a fait le standard.
Mais l’écosystème JavaScript (JavaScript ecosystems) bouge vite. Depuis peu, des challengers écrits en Rust bousculent ESLint sur son point faible : la vitesse. Biome (ex-Rome) réunit linter et formateur dans un seul outil ultra-rapide.
Oxlint, issu du projet OXC, annonce des analyses 50 à 100 fois plus rapides qu’ESLint.
Faut-il abandonner ESLint pour autant ? Pas si vite. Ces outils gagnent du terrain sur les nouveaux projets, mais ESLint garde une longueur d’avance grâce à son écosystème de plugins, ses règles spécifiques à TypeScript et ses règles personnalisées, irremplaçables sur les codebases matures.
Que retenir de cette comparaison ? Pour un nouveau projet sans contraintes fortes, Biome séduit par sa mise en route quasi instantanée. Mais dès que vous avez besoin de plugins spécialisés, de règles maison ou d’un support fin de TypeScript, ESLint reste le choix le plus sûr.
C’est aussi, et de loin, l’outil le plus demandé sur le marché : le connaître, c’est parler la langue de presque toutes les équipes JavaScript.
ESLint, un atout sur vos missions freelance ?
Qu’est-ce qu’ESLint change pour vous, freelance ?
Plus que vous ne le pensez. Quand vous arrivez sur le projet d’un client, votre façon de gérer la qualité de code en dit long sur votre niveau. Respecter la configuration ESLint en place, ou en installer une là où il n’y en a pas, est un signal de professionnalisme immédiat.
Un client qui voit un freelance brancher un linter, un hook de pré-commit et une barrière en intégration continue comprend tout de suite qu’il a affaire à quelqu’un de sérieux.
C’est encore plus vrai si vous visez des missions de lead technique ou de référent qualité. Savoir définir une configuration partagée, écrire des règles maison adaptées au contexte du client et automatiser tout cela, ce n’est plus un « bonus » : c’est un livrable à part entière, souvent valorisé sur les missions à forte responsabilité.
La qualité de code ne se voit pas sur une démo, mais elle se ressent sur la durée d’un projet, et c’est exactement ce qui fidélise un client. Sur un marché concurrentiel, la rigueur technique est un argument de différenciation que peu de freelances pensent à mettre en avant.
Que retenir d’ESLint ?
ESLint n’a rien d’un gadget. C’est un outil open source, mûr et incontournable, qui transforme la qualité de code d’un sujet de débat en un processus automatique. L’installer prend cinq minutes ; bien le configurer, un peu plus ; mais le bénéfice, lui, dure toute la vie du projet. Et sur vos missions, c’est un atout qui se remarque. Alors, prêt à lancer votre première commande ?
FAQ – ESLint
ESLint est-il gratuit ?
Oui, totalement. ESLint est un projet open source publié sous licence MIT et gouverné par l’OpenJS Foundation. Vous pouvez l’utiliser librement, sur un projet personnel comme en entreprise, sans aucun coût.
ESLint fonctionne-t-il avec TypeScript ?
Oui. Il suffit d’ajouter le parser et le plugin typescript-eslint à votre configuration. Vous bénéficiez alors de règles capables d’exploiter le typage, particulièrement utiles pour détecter des erreurs subtiles.
Faut-il choisir entre ESLint et Prettier ?
Non, ils sont complémentaires. ESLint veille sur la qualité du code (bugs, mauvaises pratiques), Prettier se charge du formatage (indentation, espaces, retours à la ligne). La plupart des équipes utilisent les deux ensemble.
Mon ancien fichier .eslintrc fonctionne-t-il encore ?
Plus depuis ESLint 10, qui ne lit que le format « flat config » (eslint.config.js). Si vous migrez un projet existant, un assistant officiel convertit automatiquement la majeure partie de votre ancienne configuration.




