Skip to content
Devgo

ESLint

A linter for JavaScript/TypeScript — finds bugs, enforces style, and catches errors before they run. Configurable rules (eslint:recommended, Airbnb, Standard). The standard JS/TS linter. Integrates with editors and CI.

Created by

Nicholas Zakas · Created ESLint in 2013

When to use
  • Every JS/TS project.
  • Teams wanting consistent code style.
  • Catching bugs before runtime.
  • CI/CD pipelines.
When not to
  • Never — it's the standard.

Definition

ESLint analyzes JS/TS code for problems — bugs, style violations, suspicious patterns. Configurable via .eslintrc with rules (error/warn/off). Plugins for , accessibility, security. Flat config (eslint.config.js) is the new format. Editor extensions show errors inline.

Why it exists

JS is dynamic — errors often surface at runtime. ESLint catches them statically, enforces consistent style, and automates code review for common issues.

How it works

npm install eslint. eslint.config.js defines rules and plugins. npx eslint src/ lints files. Editor extensions (VS Code ESLint) show errors as you type. eslint --fix auto-fixes many issues. CI runs it to block bad code.

Scaling limits

Config can be complex (flat vs legacy config). Rule conflicts between plugins. Performance on huge codebases. Some rules are opinionated and need tuning.

Cost shape

Free and open source.

Alternatives

  • Prettier — Formatting only, no bug detection. Use together.
  • Biome — Faster, all-in-one linter+formatter, less mature.
  • TSLint — Deprecated, replaced by ESLint.

Failure modes

  • Config complexity.
  • Plugin conflicts.
  • False positives.
  • Slow on huge codebases.

, , ,