# Advanced ESLint Configuration — ESLint + Prettier

Source: https://www.geekswithgeeks.com/en/eslint-prettier/eslint-prettier-08

> Use environments, globals, and overrides for granular control.

## Environments and globals

Environments define globals (browser, node, es2021). Globals tell ESLint which variables are predefined. Use overrides to apply different rules to different file patterns.

## Using overrides

Apply stricter rules to source files but looser rules to tests.

```json
{
  "env": { "browser": true, "es2021": true },
  "rules": { "no-console": "error" },
  "overrides": [
    {
      "files": ["**/*.test.js"],
      "env": { "jest": true },
      "rules": { "no-console": "off" }
    }
  ]
}
```

Output:

```
Overrides configured: stricter prod, lenient tests
```

## Selective strictness

Test files and scripts often need looser rules. Use overrides to customize rules per directory or file pattern without duplicating your base config.

Quick check

**Quiz:** What do 'overrides' allow you to do?

- [x] Apply different rules to different files or directories.
- [ ] Speed up ESLint.
- [ ] Disable all rules at once.

*Answer:* Apply different rules to different files or directories.. 'overrides' is a powerful feature for file-specific configuration, perfect for testing different rule strictness levels.
