ESLint仍检查已忽略文件求助:dist目录忽略规则失效原因
ESLint Flat Config中配置块内
ignores失效的原因 问题场景
我的eslint.config.mjs配置如下:
import ts from 'typescript-eslint'; export default ts.config( { files: ['**/*.{js,ts,vue}'], ignores: ['**/dist/**/*',] }
在配置文件所在目录执行npx eslint时,却收到了dist\xyz\mySite.js的报错:
dist\xyz\mySite.js error Rule "func-names" is already configured by another configuration comment in the preceding code. This configuration is ignored
按道理dist目录应该被忽略,但它还是被检查了。改用仅包含{ignores: ['**/dist/']}的全局忽略配置后就正常生效了,请问前者的忽略配置为什么会失效?
原因说明
配置作用域差异
在ESLint的Flat Config系统中,配置块内的ignores是局部生效的——它只会从当前配置块的files匹配结果中排除指定路径,而非全局范围内排除。也就是说,你这个带files的配置块确实不会检查dist里的文件,但ESLint的其他配置(包括默认的隐式基础配置)并没有排除dist目录,这些配置依然会对dist下的文件执行检查,所以你还是会看到报错。全局
ignores的作用
当你把ignores放在不带files的顶层配置对象中时,它是全局生效的,会从整个ESLint的检查范围内彻底排除指定路径,所有配置块都不会再处理这些路径,因此能正确忽略dist目录。
另外提个小细节:你配置里的ignores数组最后多了个冗余逗号,虽然不影响运行,但建议清理掉,保持代码整洁。
内容的提问来源于stack exchange,提问作者GarfieldKlon
相关产品推荐
相关产品推荐

