ESLint的ignorePatterns配置为什么没生效?
最近在项目里配置了ESLint的ignorePatterns,把node_modules和dist目录加上去了,但运行时发现dist里的文件还是被检查了,这是怎么回事啊?
我的.eslintrc.json里是这样写的:
{
"ignorePatterns": ["node_modules/", "/dist/"],
"env": {
"browser": true
}
}
试过改成”.eslintrc.js”用数组写法,也试过在根目录加.eslintignore文件列出来,但问题依旧。运行命令时明明看到有dist下的.js文件报错,是不是路径格式哪里不对?
最常见的就是你在package.json里写了类似这样的命令:
"lint": "eslint src/ dist/"
注意到了吗?你自己把dist/传给eslint命令了。这时候ESLint会认为“用户明确要求检查这些文件”,就会跳过ignorePatterns直接执行。解决方案很简单,改成:
"lint": "eslint ."
或者明确指定要检查的目录,比如
"lint": "eslint src/"
另外一点要注意的是路径斜杠。你写的是"/dist/",前面这个根路径斜杠在某些系统下可能匹配不到。建议统一用相对路径写法:
不需要加前后斜杠,ESLint会当glob模式处理,更兼容。如果还是不行,检查下有没有其他配置文件比如.eslintrc.js或package.json里的eslintConfig覆盖了你的设置。最后实在不行加个.eslintignore文件放在项目根目录,内容就两行:
这个优先级更高,一般都能搞定。