eslint-config-xaxa
Version:
Modern, ESLint v9+ compatible, Airbnb-based shareable config; including plugins like Import, Prettier, Unicorn, Typescript, Astro, and React.
88 lines (61 loc) • 3.16 kB
Markdown
[]: https://npmjs.com/packages/eslint-config-xaxa
[]: https://badgen.net/npm/v/eslint-config-xaxa?icon=npm
[]: https://github.com/tunnckocore/eslint-config-xaxa/actions
[]: https://badgen.net/github/checks/tunnckoCore/eslint-config-xaxa/master?icon=github
[]: https://liberamanifesto.com
[]: https://badgen.net/badge/libera/manifesto/grey
Modern, ESLint v9+ compatible, config based on Airbnb with support for Astro, Prettier, Plugin
Promise, Plugin Unicorn, Plugin Import, React and Typescript.
Airbnb Config is basically dead and the main creator is struggling to keep up, and he also left
Airbnb a long time ago. So, i got the latest (as of April 2025) from the master branch of the repo
and added my preferences on top - i was doing that on my own config for YEARS and never changed.
It's time for ESLint v9.
Versioning policy scheme is `YY.major.patch`, but i don't change things frequently and i don't plan
to support and keep track of what's going on with ESLint rules, changes and whatnot.
Versions of dependencies are locked, so there won't be any problems, ever! In the past year, every
few weeks when i get into my editor, something breaks.. And no, i didn't updated versions, i didn't
changed the lockfiles, i didn't even opened my laptop for weeks on end. But editors were throwing
errors constantly.
## Note on Prettier
This config uses `eslint-plugin-prettier` to both disable and apply prettier. But it includes my
opinionated Prettier config with several plugins like Organize Imports, Tailwind CSS, Astro, and
Package.json sorting. You can include it on you `prettier.config.js` and install prettier
separately.
## Previous versions
Previously there was `eslint-config-xaxa` which was more or less the same thing, and was behind the
`xaxa` cli and library wrapper for ESLint. Maybe i'll update the `xaxa` soon to use ESLint 9 and
that config. For now just config is fine for me.
## Install
using Bun, JSR, pnpm, npm, or whatever:
```
bun add -D eslint-config-xaxa
```
## Usage
For **ESLint prior to v9** you can use `eslint-config-tunnckocore` which is basically what i used in
the past few years!
```js
// .eslintrc.cjs
module.exports = { extends: ['tunnckocore'] };
```
For **ESLint v9+ and above** use the flat config:
```js
// eslint.config.js
import eslintConfigXaxa from 'eslint-config-xaxa';
export default eslintConfigXaxa;
```
For **Prettier** make sure your `prettier.config.js` is in ES Modules format, and you should have
`"type": "module"` in your package.json.
```js
// prettier.config.js
import prettierConfigXaxa from 'eslint-config-xaxa/prettier';
export default prettierConfigXaxa;
```
If you want to use just the **Airbnb Base Config** which just includes their style and few rules
from the import plugin:
```js
// eslint.config.js
import airbnbConfig from 'eslint-config-xaxa/airbnb-base';
export default airbnbConfig;
```