eslint-config-airbnb-extended
raw JSON → 3.1.0 verified Sat Apr 25 auth: no javascript
An ESLint configuration package that extends the official Airbnb ESLint config to support TypeScript, React hooks, and modern JavaScript. Current stable version is 3.1.0, requiring Node.js >=18.18.0 and ESLint ^9.0.0. It is ESM-only and includes TypeScript types. Key differentiators: all batteries included (no need to install multiple peer configs), redesigned CLI, and significantly smaller package size (~72% reduction) compared to v2. Released on a monthly cadence. V3 dropped Node v16 support and switched to ESM-only.
Common errors
error Cannot find module 'eslint-config-airbnb-extended' ↓
cause Package not installed or wrong import path.
fix
Run 'npm install eslint-config-airbnb-extended --save-dev' and ensure correct import: 'import airbnbXConfig from 'eslint-config-airbnb-extended''.
error Error [ERR_REQUIRE_ESM]: require() of ES Module ... not supported. ↓
cause Using CommonJS require() with an ESM-only package.
fix
Switch to ESM: use 'import' or rename config file to .mjs and set 'type': 'module' in package.json.
error 'n/prefer-global/crypto' rule is not found ↓
cause Missing eslint-plugin-n dependency or version mismatch.
fix
Install eslint-plugin-n: 'npm install eslint-plugin-n --save-dev'.
error Configuration for rule 'react/jsx-curly-brace-presence' is invalid ↓
cause Incompatible rule configuration from v2.2.0 re-enabling.
fix
Update config to match v3 syntax or use 'override' correctly in flat config.
error TypeError: Cannot destructure property 'createConfig' of ... undefined ↓
cause Trying to import named export from a non-existent subpath.
fix
Use correct import: 'import { createConfig } from 'eslint-config-airbnb-extended''.
Warnings
breaking v3 dropped Node.js v16 support, requires Node 18.18 or higher. ↓
fix Upgrade Node.js to version 18.18.0 or higher.
breaking v3 is ESM-only; CommonJS require() will throw an error. ↓
fix Use import statements or switch to ESM in your project.
breaking v2 removed the 'Own Customization' option from the CLI. ↓
fix Refer to documentation for customization guidance.
deprecated v2.2.0 re-enabled formatting rules that were accidentally turned off, causing lint failures for users who relied on the disabled rules. ↓
fix Review your code for formatting issues after upgrading to v2.2.0+.
gotcha v3.1.0 introduced n/prefer-global/crypto and n/prefer-global/timers rules at error level, which may break builds for code using Node.js global objects. ↓
fix Override these rules in your eslint config if needed: 'n/prefer-global/crypto': 'off', 'n/prefer-global/timers': 'off'.
gotcha v3.1.0 enabled all recommended react-hooks rules; projects with pre-existing hook violations will now see lint errors. ↓
fix Run eslint --fix to auto-fix violations or manually update hook dependencies.
gotcha The package is ESM-only and ships TypeScript types; ensure your TypeScript settings allow ESM imports. ↓
fix Set '"type": "module"' in package.json or use .mjs extension for config files.
Install
npm install eslint-config-airbnb-extended yarn add eslint-config-airbnb-extended pnpm add eslint-config-airbnb-extended Imports
- default wrong
const airbnbXConfig = require('eslint-config-airbnb-extended')correctimport airbnbXConfig from 'eslint-config-airbnb-extended' - createConfig wrong
const { createConfig } = require('eslint-config-airbnb-extended')correctimport { createConfig } from 'eslint-config-airbnb-extended' - legacy wrong
import legacy from 'eslint-config-airbnb-extended/legacy'correctimport { legacy } from 'eslint-config-airbnb-extended'
Quickstart
// eslint.config.js
import airbnbXConfig from 'eslint-config-airbnb-extended';
export default [
...airbnbXConfig,
{
rules: {
// Customize rules here
}
}
];