Using ESLint's --fix Flag
ESLint's --fix option tells ESLint to fix whatever
errors in your code that it knows how to fix.
Getting Started
For example, ESLint's recommended config uses the no-extra-boolean-cast rule, which removes unnecessary !! in if statements. For example, suppose you have the
below test.js file. The !! in the if statement is unnecessary, because JavaScript if statements already check
for truthy values.
if (!!(typeof window === 'undefined')) {
console.log('Hello from Node.js!');
}
Suppose you have the below .eslintrc.json config file:
{
"parserOptions": {
"ecmaVersion": 2020
},
"rules": {
"no-extra-boolean-cast": "error"
}
}
ESLint will report a "Redundant double negation" error:
$ ./node_modules/.bin/eslint ./test.js
/scratch/test.js
1:5 error Redundant double negation no-extra-boolean-cast
✖ 1 problem (1 error, 0 warnings)
1 error and 0 warnings potentially fixable with the `--fix` option.
$ cat ./test.js
Notice the 1 error and 0 warnings potentially fixable with the --fix option line. That tells you that ESLint knows
how to fix this error. Run ./node_modules/.bin/eslint --fix ./test.js and that error goes away.
$ ./node_modules/.bin/eslint --fix ./test.js
$
$ cat ./test.js
if (typeof window === 'undefined') {
console.log('Hello from Node.js!');
}
Note that ESLint removed the unnecessary !!.
ESLint can only automatically fix violations for certain ESLint rules. ESLint's rules page has a complete list of built-in ESLint rules and explains which rules it can automatically apply fixes for.
With npm Scripts
Developers often run ESLint using npm run. How to run ESLint with fix via npm script is a common question on StackOverflow.
For example, suppose your package.json file includes the below lines:
"scripts": {
"lint": "eslint ."
}
In order to run eslint --fix, you need to run npm run lint -- --fix. Note the extra --. You only need the -- if you're running ESLint in an npm script!