如何让ESLint在不使用配置文件且忽略文件内配置的情况下仅检查指定单一规则?
如何让ESLint在不使用配置文件且忽略文件内配置的情况下仅检查指定单一规则?
我完全懂你的需求——在完全不改动老项目(不生成任何配置文件、不安装依赖包)的前提下,只用ESLint检查某一个特定规则,还得彻底无视代码里的内联ESLint注释配置对吧?
你之前用的命令eslint --no-config-lookup --rule "no-console: error" ./my_js_folder/没达到预期,核心问题是ESLint默认会解析代码文件里的内联注释配置(比如/* eslint quotes: ["error", "double"] */这种),这些内联规则会叠加到你命令行指定的规则上,所以才会冒出其他规则的错误和警告。
要解决这个问题,你只需要在命令里再加一个--no-inline-config参数,它会让ESLint完全忽略代码文件里的所有内联ESLint注释(包括规则设置、eslint-disable这类禁用指令)。
最终的正确命令是这样的:
eslint --no-config-lookup --no-inline-config --rule "no-console: error" ./my_js_folder/
咱们用你给出的测试文件验证一下效果:
测试文件some.js内容:
console.log('this should be reported'); /* eslint quotes: ["error", "double"], curly: 2 */ const thisShouldNotBeReported = 'this is unexpected';
执行新命令:
eslint --no-config-lookup --no-inline-config --rule "no-console: error" some.js
输出只会出现你想要的no-console规则错误:
eslint_example/some.js 1:1 error Unexpected console statement no-console ✖ 1 problem (1 error, 0 warnings)
完全符合你的要求:
- 没有生成任何配置文件、
node_modules或package相关文件,项目完全感知不到ESLint的存在 - 彻底无视了代码里的内联规则配置
- 只检查了你指定的
no-console这一个规则
另外补充两个小细节:
--no-config-lookup确保ESLint不会去查找项目里的任何ESLint配置文件(包括.eslintrc系列文件、package.json里的eslint字段等)- 如果你想把规则设为警告而非错误,只需把
"no-console: error"改成"no-console: warn"即可
备注:内容来源于stack exchange,提问作者k0pernikus
相关产品推荐
相关产品推荐

