Skip to content

A highly opinionated, sharable config of ESLint rules to produce beautiful, readable JavaScript.

License

Notifications You must be signed in to change notification settings

manovotny/eslint-config-get-off-my-lawn

Repository files navigation

eslint-config-get-off-my-lawn

A highly opinionated, sharable config of ESLint rules to produce beautiful, readable JavaScript.

eslint-config-get-off-my-lawn

As developers, we spend more time reading code than writing it. These rules aim to make reading JavaScript a priority.

That means some rules will feel oppressive or "over the top" for many developers, which is fine. If you don't like it, you can get off my lawn! ... Or extend the rules and override them with the ones that bother you. Either way. 😊

This config also comes with the following plugins, and corresponding rules, baked in.

Each and every single rule has been meticulously poured over and purposefully hand picked or excluded.

eslint-config-get-off-my-lawn will automatically enable and disable plugins (and thus rules) based on your package.json dependencies. Not using React? Cool. eslint-plugin-jsx-a11y, eslint-plugin-react, eslint-plugin-react-hooks, and eslint-plugin-react-native won't be included. Not using a React version that supports hooks? eslint-plugin-react-hooks will be disabled. Not a React Native project? No problem. Those rules won't be included. I think you get the idea... 😉

Install

NPM

$ npm i eslint eslint-config-get-off-my-lawn --save-dev

Yarn

$ yarn add eslint eslint-config-get-off-my-lawn --dev

Usage

Create an ESLint config in your package.json or .eslintrc.js file.

package.json

{
    "name": "my-awesome-project",
    "eslintConfig": {
        "extends": "get-off-my-lawn",
        "rules": {
            // enable additional rules, override rule options, or disable rules
        }
    }
}

.eslintrc.js

module.exports = {
    extends: 'get-off-my-lawn',
    rules: {
        // enable additional rules, override rule options, or disable rules
    },
};

Once your rules are configured, we recommend running the following command in your package.json as an npm script.

eslint . --ext .js,.json

Supported extensions:

  • .js
  • .jsx
  • .json
  • .json5
  • .jsonc
  • .ts
  • .tsx

Usage With Prettier

Love eslint-config-get-off-my-lawn? Love prettier? Well you're in luck!

eslint-config-get-off-my-lawn will automatically detect if your project is using prettier and it will apply eslint-config-prettier to turn off all rules that are unnecessary or might conflict with prettier.

Usage With TypeScript

But what about TypeScript? Don't worry, we got you!

eslint-config-get-off-my-lawn will automatically detect if your project is using TypeScript and it will configure and enable @typescript-eslint/eslint-plugin for you. How's that for handy?

Related

License

MIT © Michael Novotny

About

A highly opinionated, sharable config of ESLint rules to produce beautiful, readable JavaScript.

Topics

Resources

License

Stars

Watchers

Forks

Sponsor this project

 

Packages

No packages published