ESLint 的--fix
选项告诉 ESLint 修复代码中任何它知道如何修复的错误。
例如,ESLint 推荐的配置使用了 no-extra-boolean-cast
规则,这将在 if
语句中删除不必要 !!
。例如,假设您有以下 test.js
文件。因为 JavaScript if
语句已经检查了 truthy 值,所以在 if
语句中没有必要使用 !!
。
if (!!(typeof window === 'undefined')) {console.log('Hello from Node.js!')}
假设您有以下 .eslintrc.json
配置文件:
{"parserOptions": {"ecmaVersion": 2020},"rules": {"no-extra-boolean-cast": "error"}}
ESLint 会报 Redundant double negation 错误:
$ ./node_modules/.bin/eslint ./test.js/scratch/test.js1: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
注意 1 error and 0 warnings potentially fixable with the --fix option
这一行。这说明 ESLint 知道如何修复这个错误。运行 ./node_modules/.bin/eslint --fix ./test.js
,这个错误就会消失。
$ ./node_modules/.bin/eslint --fix ./test.js$ cat ./test.jsif (typeof window === 'undefined') {console.log('Hello from Node.js!');}
请注意,ESLint 删除了不必要的 !!
。
ESLint 只能自动修复某些 ESLint 规则的违规行为。ESLint 有一个完整的内置 ESLint 规则列表,并解释了它可以自动应用修复的规则。
我们添加一个 npm scripts
来运行 ESLint 规则。
例如,假设您的 package.json
文件包含以下行:
{"scripts": {"lint:fix": "eslint . --fix"}}
现在,您只需要在命令行运行 npm run lint:fix
,它将修复它可修复的内容。