Skip to content

Migration Guide ​

Migrating from the old Airbnb ESLint configs to eslint-config-airbnb-extended is straightforward, but there are a few key changes you need to be aware of, especially around ESLint’s new Flat Config system.

Follow these steps to safely migrate your project.

1. Uninstall Old Packages ​

Remove the following legacy Airbnb packages from your package.json:

  • eslint-config-airbnb-base
  • eslint-config-airbnb
  • eslint-config-airbnb-typescript

You no longer need them, as eslint-config-airbnb-extended consolidates all of their functionality into a single modern config.

sh
$ npm uninstall eslint-config-airbnb-base eslint-config-airbnb eslint-config-airbnb-typescript
sh
$ yarn remove eslint-config-airbnb-base eslint-config-airbnb eslint-config-airbnb-typescript
sh
$ pnpm remove eslint-config-airbnb-base eslint-config-airbnb eslint-config-airbnb-typescript
sh
$ bun remove eslint-config-airbnb-base eslint-config-airbnb eslint-config-airbnb-typescript

2. Migrate to Flat Config ​

The extended config works only with ESLint’s Flat Config system. This means you cannot use legacy .eslintrc.* files anymore. Instead, your project root will use eslint.config.mjs.

If you're still using .eslintrc, follow ESLint’s official migration guide and ESLint’s blog posts on the new config system Part 1 and Part 2.

3. Follow Installation Steps ​

Once your project is ready for Flat Config, Follow the installation steps to add the new config to your project.

4. Update import/* Rules ​

One important change in this package is the switch from the import/* rules to import-x/*.

js
"import/no-unresolved": "off"
"import-x/no-unresolved": "off"

Why the change? See the explanation here.

5. Verify and Clean Up ​

Once migration is complete:

  • Run eslint . and check that the linter works without errors.
  • Remove any unused ESLint-related dependencies that may still be lingering.
  • Commit your changes so the whole team benefits from the new setup.

All Done! ​

Your project is now using the modern, TypeScript-ready Airbnb Extended config with ESLint 9+. Enjoy a cleaner, more consistent codebase without the hassle of outdated configs!

Released under the MIT License.