eslint-config-problems
is anESLintconfig that doesn't regulate your code style. It only catches actual problems with your code.
It's designed for use withPrettier,the opinionated code formatter; but you could also use this as a solid base config to add stylistic rules on top of.
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:
The
if(someCondition)returnsomeValue; else{ // Do something else }
else
block is unneeded, since theif
block contains areturn
statement.eslint-config-problems
will point this out to you (or auto-fix with the--fix
option).
eslint-config-problems
also setsecmaVersion: 2020
in theparserOptions
,so that ESLint can parse modern code (includingBigInt
) with no additional setup.
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.
eslint-config-problems
doesn't set any environments by default, other than thees6
environment. So you'll have to manually set your environment in your ESLint config. Here's alist of environments.
If you're using ES Modules, you will need to setsourceType: module
in theparserOptions
,like this:
parserOptions:
sourceType:module
npm install -D eslint eslint-config-problems
In youreslintrc.yaml:
extends:'problems'
env:
#Set your environments here; for example:
node:true
npm install -D eslint prettier eslint-config-problems eslint-plugin-prettier
In youreslintrc.yaml:
extends:'problems'
env:
#Set your environments here; for example:
node:true
plugins:
-prettier
rules:
-prettier/prettier:error