ESLint no-console规则仅校验console.debug不校验log等语句原因咨询
问题原因
- Angular 项目默认继承的
@angular-eslint推荐规则集,已经对no-console规则做了带白名单的默认配置:默认允许log、warn、error三类 console 方法,仅禁止debug。你单独配置"no-console": "error"只会修改规则的严重级别,不会清除原有配置的allow白名单,因此白名单内的方法不会触发校验报错。 - 如果你把
no-console规则写在了全局rules配置块,没有写在针对 TypeScript 文件的overrides配置块中,也会出现不生效的问题:Angular 项目的.ts文件默认走@typescript-eslint解析器的专属规则校验,全局配置的原生 ESLint 规则可能被针对 TS 文件的规则配置覆盖。 - 部分项目会开启
@typescript-eslint/no-console规则替代原生的no-console规则,这种情况下你修改原生规则自然不会生效。
解决方法
找到你项目 ESLint 配置中对应生效的规则块,完整配置 no-console 规则的参数,清空允许白名单即可:
如果用的是原生 no-console 规则:
"no-console": ["error", { "allow": [] }]
如果用的是 TS 插件版的 @typescript-eslint/no-console 规则:
"@typescript-eslint/no-console": ["error", { "allow": [] }]
配置完成后重启 ESLint 服务即可生效,所有 console 相关方法都会触发错误校验。
内容的提问来源于stack exchange,提问作者Kalhan
相关产品推荐
相关产品推荐

