@bmearns/eslint-config

Standard linter config for me.


License
MIT
Install
npm install @bmearns/eslint-config@0.5.2

Documentation

eslint-config-mearns

My eslint styling rules for NodeJS projects.

Use

# > npm install --save-dev git+https://github.com/mearns/eslint-config-mearns.git
> npm install --save-dev @bmearns/eslint-config
> npm install --save-dev eslint@8

Set your .eslintrc.json as follows:

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

Optionally, but recommended:

> npm install --save-dev prettier pretty-quick husky

And merge the following into your package.json:

{
    "scripts": {
        "lint": "mearns-lint .",
        "pretty": "pretty-quick --staged"
    },
    "husky": {
        "hooks": {
            "pre-commit": "npm run pretty -s"
        }
    }
}

Overview

Parses ECMA Version 12, rules based on "JavaScript Standard Style" and Prettier (v3), but with semicolons.

The rules start with "standard" but we put semicolons back in because some people are really adverse to relying on ASI. Our rules require the use of semicolons to terminate statements, require a space after a semicolon and prohibit a space before a semicolon, and prohibit the use of extra-semicolons (semicolons that create empty statements).

We also use the "prettier/recommended" configuration and specifically set all prettier rules to "error" level (some default to "warning").

Finally, we add a "no-warning-comments" rule which will fail if any comment contains strings "FIXME", "TODO", or "XXX" (case-insensitive in all cases). This isn't to imply you shouldn't use comments like this, these rules allow you to use them to flag things that you need to fix before you merge or publish. However, these rules do imply that there shouldn't be any long-lived use of these comments: use an issue tracker for that.

Variations

If you're using jest, you might want to extends "@bmearns/eslint-config/jest"; this will set appropriate overrides for files under the test/ directory. Or if you're using jest with your test files adjacent to the source files they test, use "@bmearns/eslint-config/jest-adjacent" instead. This assumes your files are named like "foobar.test.ext".

If you're writing in typescript, you probably want to use "@bmearns/eslint-config/typescript", which will set appropriate overrides for typescript files (based on ".ts" extension). Note that you'll want to have this after the jest variant if you're using both.