Skip to main content

Configure Rules Effectively

ESLint rules are the foundation of code quality enforcement. This guide teaches you how to configure rules effectively for your team and project.
ESLint has over 280 built-in rules, and thousands more available via plugins.

Understanding Rule Basics

Rule Severity Levels

Every ESLint rule has a severity level that determines how violations are handled: Example:
Best Practice: Use "error" for critical issues, "warn" for code smells you’re gradually fixing, and "off" for rules that don’t apply to your project.

Basic Rule Configuration

Simple On/Off Rules

Many rules work as simple toggles:

Rules with Options

Many rules accept configuration options:
Check the rule documentation for available options. Each rule page includes a “Options” section.

Configuration Strategies

Using Presets

Start with recommended configurations and customize:
Popular presets:
  • @eslint/js - ESLint recommended
  • eslint-config-airbnb - Airbnb style guide
  • eslint-config-standard - JavaScript Standard Style
  • @typescript-eslint/recommended - TypeScript rules

File-Specific Configuration

Apply different rules to different file types:

Environment-Based Configuration

Adjust rules based on environment:

Common Rule Patterns

Code Quality Rules


Style Consistency Rules

Many style rules are deprecated in favor of formatters like Prettier. Use ESLint for logic, Prettier for formatting.

Security Rules

Consider using eslint-plugin-security for comprehensive security checks.

Advanced Configuration

Rule Cascading

Later configurations override earlier ones:

Shared Configurations

Create reusable configs for your organization:

Inline Configuration

Disable rules for specific lines or files:
Use inline disables sparingly. Excessive use indicates your base configuration may need adjustment.

Rule Configuration Examples


Performance Tips

1

Cache ESLint results

Caching speeds up subsequent runs significantly.
2

Limit file scope

Only lint files you care about:
3

Disable expensive rules

Some rules require type information (slower):
4

Use --max-warnings in CI

Fails the build if any warnings exist.

Debugging Rule Configuration

Use --debug flag to see which configs are applied:
Print effective config for a file:
Check which rules are enabled:

Best Practices

Start Strict

Enable strict rules early. It’s easier to relax than tighten later.

Document Decisions

Add comments explaining why rules are disabled or configured unusually.

Review Regularly

Audit your config quarterly. Remove obsolete rules and add new ones.

Team Consensus

Discuss rule changes with the team. Avoid surprise configuration updates.

Common Pitfalls

Pitfall #1: Too many disabled rulesIf you’re disabling many rules, you may be using the wrong preset.
Pitfall #2: Conflicting formattersDon’t use both ESLint formatting rules and Prettier. Choose one.
Pitfall #3: Environment mismatchEnsure your languageOptions.globals matches your runtime environment.

Resources

Rule Reference

Complete list of ESLint rules

Configuration Guide

Comprehensive configuration docs

Plugin Directory

Find ESLint plugins on npm

Awesome ESLint

Curated list of ESLint resources