1. eslint-config-problems
An eslint config that catches problems in your code, without checking style. For use with prettier.
eslint-config-problems
Package: eslint-config-problems
Created by: ryanzim
Last modified: Thu, 18 May 2023 17:51:33 GMT
Version: 8.0.0
License: ISC
Downloads: 21,940
Repository: https://github.com/ryanzim/eslint-config-problems

Install

npm install eslint-config-problems
yarn add eslint-config-problems

eslint-config-problems

eslint-config-problems is an ESLint config that doesn't regulate your code style. It only catches actual problems with your code.

It's designed for use with Prettier, the opinionated code formatter; but you could also use this as a solid base config to add stylistic rules on top of.

Contents

Rules

Rules were chosen based on the following criteria:

  • No stylistic rules; nothing that Prettier can fix
  • Prevent guaranteed runtime errors (i.e. no undefined variables)
  • Disallow "evil" things like eval
  • Disallow archaic language features like with
  • Disallow obvious bad practices like new Number(13)
  • Force usage of ES2015+ features supported by Node.js v10+
  • Point out places the code could be made shorter. For example:
     if (someCondition) return someValue;
    else {
      // Do something else
    }
    
    The else block is unneeded, since the if block contains a return statement. eslint-config-problems will point this out to you (or auto-fix with the --fix option).

eslint-config-problems also sets ecmaVersion: 2020 in the parserOptions, so that ESLint can parse modern code (including BigInt) with no additional setup.

I disagree with rule X; you missed rule Y

If you disagree; feel free to open an issue. I'm open to changing rules if you have a good reason.

If I missed a rule that prevents an actual problem or is otherwise in keeping with the general guidelines above, please open an issue as well; I just might add it.

Installation & Usage

eslint-config-problems doesn't set any environments by default, other than the es6 environment. So you'll have to manually set your environment in your ESLint config. Here's a list of environments.

If you're using ES Modules, you will need to set sourceType: module in the parserOptions, like this:

 parserOptions:
  sourceType: module

Just ESLint

npm install -D eslint eslint-config-problems

In your eslintrc.yaml:

 extends: 'problems'
env:
  # Set your environments here; for example:
  node: true

With eslint-plugin-prettier

npm install -D eslint prettier eslint-config-problems eslint-plugin-prettier

In your eslintrc.yaml:

 extends: 'problems'
env:
  # Set your environments here; for example:
  node: true
plugins:
  - prettier
rules:
  - prettier/prettier: error

License

ISC

RELATED POST

Enhancing Vue.js Development: Harnessing the Potential of Vue-Loader

Enhancing Vue.js Development: Harnessing the Potential of Vue-Loader

Simplify Data Validation in Vue.js: A Step-by-Step Guide to Using Regex

Simplify Data Validation in Vue.js: A Step-by-Step Guide to Using Regex

Troubleshooting Made Easy: Common Issues and Solutions with vue-loader Without vue-cli

Troubleshooting Made Easy: Common Issues and Solutions with vue-loader Without vue-cli

Optimizing Webpack 4 with Vue CLI 3: Disabling the Cache-Loader

Optimizing Webpack 4 with Vue CLI 3: Disabling the Cache-Loader

Step-by-Step Guide: How to Add a Function to Your Vuex Plugin

Step-by-Step Guide: How to Add a Function to Your Vuex Plugin