Skip to content

Packages Used

This configuration relies on a set of essential ESLint plugins that extend Airbnb’s base rules to support TypeScript, React, Node.js, accessibility, and import handling.

Quick Overview

PackagePurposeKey Benefits
@stylistic/eslint-pluginStyling & formatting rulesEnsures consistent code style (spacing, quotes, semicolons, indentation) directly in ESLint
eslint-plugin-import-xImport/export validationDetects invalid imports, enforces ordering, supports TypeScript better than legacy eslint-plugin-import
eslint-plugin-nNode.js best practicesPrevents use of deprecated APIs, enforces modern Node.js coding standards
eslint-plugin-reactReact-specific lintingCatches JSX errors, enforces prop validation, encourages React best practices
eslint-plugin-react-hooksRules of HooksEnsures hooks are used correctly and dependencies are properly declared
eslint-plugin-jsx-a11yAccessibility for JSXDetects missing alt text, incorrect ARIA attributes, improves WCAG compliance
@next/eslint-plugin-nextNext.js-specific lintingEnforces Next.js best practices, catches common issues, and ensures consistency with official standards
@typescript-eslintTypeScript linting supportAdds type-aware rules, catches unsafe patterns, integrates TS with Airbnb config
eslint-import-resolver-typescriptTS import resolutionSupports tsconfig.json path aliases, prevents false-positive import errors

Detailed Explanation

1. @stylistic/eslint-plugin

Provides fine-grained styling and formatting rules, covering details like spacing, quotes, indentation, and semicolons. This ensures consistent formatting across JavaScript and TypeScript files without relying on an external formatter.

2. eslint-plugin-import-x

A modern fork of eslint-plugin-import with better TypeScript support and performance. It validates import/export syntax, detects duplicate or invalid imports, and enforces consistent ordering and grouping.

3. eslint-plugin-n

Focuses on Node.js best practices. It warns about deprecated APIs, incorrect callback usage, and ensures compatibility with the Node.js version defined in your project.

4. eslint-plugin-react

Linting rules tailored for React. It ensures JSX is valid, encourages best practices in both functional and class components, and enforces prop validation to prevent runtime issues.

5. eslint-plugin-react-hooks

Enforces React’s official Rules of Hooks. It prevents invalid hook usage (like calling hooks in loops or conditions) and ensures dependencies in hooks like useEffect are declared correctly.

6. eslint-plugin-jsx-a11y

Improves accessibility in React apps. It detects missing alt text on images, incorrect ARIA attributes, and highlights accessibility issues in JSX to help create inclusive apps.

7. @next/eslint-plugin-next

Enforces Next.js best practices and catches common issues with images, head, and scripts. It also promotes performance optimizations and keeps your project consistent with official Next.js standards.

8. @typescript-eslint

Provides ESLint support for TypeScript. It integrates with the type system to catch unsafe patterns, unused variables, and improves type safety while working seamlessly with Airbnb’s base rules.

9. eslint-import-resolver-typescript

Extends eslint-plugin-import-x to resolve TypeScript path aliases defined in tsconfig.json. Helps prevent false positives when working with custom alias-based imports.

Why These Packages Together?

By combining these packages, eslint-config-airbnb-extended achieves:

  • Consistent code style across JavaScript & TypeScript (@stylistic/eslint-plugin).
  • Safe and reliable imports (eslint-plugin-import-x, eslint-import-resolver-typescript).
  • Strong Node.js rules (eslint-plugin-n).
  • Best practices for React & Hooks (eslint-plugin-react, eslint-plugin-react-hooks).
  • Improved accessibility (eslint-plugin-jsx-a11y).
  • Enforces framework-specific best practices (@next/eslint-plugin-next)
  • Full TypeScript integration (typescript-eslint).

Released under the MIT License.