💎 modular eslint configuration

I feel like I revamp my eslint configuration almost annually nowadays. This year the focus was on modularizing the configuration to support different technologies. Here's what I currently support.

The configurations are intended to extend one another, starting from the base JavaScript configuration. It can be installed like this.

npx install-peerdeps --dev @bradgarropy/eslint-config

Then you can create an .eslintrc file to extend the base configuration.

{
    "extends": ["@bradgarropy/eslint-config"]
}

But let's say you were working in a React project using TypeScript. You can enable linting for those technologies by first downloading the packages.

npx install-peerdeps --dev @bradgarropy/eslint-config-react
npx install-peerdeps --dev @bradgarropy/eslint-config-typescript

Then modify the .eslintrc file to further extend the base configuration.

{
    "extends": [
        "@bradgarropy/eslint-config",
        "@bradgarropy/eslint-config-react"
        "@bradgarropy/eslint-config-typescript"
    ]
}

It's important to note that order matters in the extends property. Configurations coming later will take precendence over configurations earlier in the list. However this shouldn't matter with my eslint packages, as they modify independent lint rules.

You can find all of my eslint configurations on npm. If you have any questions or issues getting them set up, reach out on Twitter or Discord, or create an issue!