ESLint的ignorePatterns配置为什么没生效?

志远🍀 阅读 13

最近在项目里配置了ESLint的ignorePatterns,把node_modules和dist目录加上去了,但运行时发现dist里的文件还是被检查了,这是怎么回事啊?

我的.eslintrc.json里是这样写的:

{
  "ignorePatterns": ["node_modules/", "/dist/"],
  "env": {
    "browser": true
  }
}

试过改成”.eslintrc.js”用数组写法,也试过在根目录加.eslintignore文件列出来,但问题依旧。运行命令时明明看到有dist下的.js文件报错,是不是路径格式哪里不对?

我来解答 赞 8 收藏
二维码
手机扫码查看
1 条解答
夏侯柯依
我之前也碰到过这问题,踩过几次坑才发现原因。你这个配置写法基本没问题,但ignorePatterns在ESLint里的执行时机很关键——它只影响ESLint主动扫描的文件,如果你在命令行里手动把dist目录塞进去,那它当然还是会检查。

最常见的就是你在package.json里写了类似这样的命令:

"lint": "eslint src/ dist/"

注意到了吗?你自己把dist/传给eslint命令了。这时候ESLint会认为“用户明确要求检查这些文件”,就会跳过ignorePatterns直接执行。解决方案很简单,改成:

"lint": "eslint ."

或者明确指定要检查的目录,比如

"lint": "eslint src/"

另外一点要注意的是路径斜杠。你写的是"/dist/",前面这个根路径斜杠在某些系统下可能匹配不到。建议统一用相对路径写法:

{
"ignorePatterns": ["node_modules", "dist"]
}


不需要加前后斜杠,ESLint会当glob模式处理,更兼容。如果还是不行,检查下有没有其他配置文件比如.eslintrc.js或package.json里的eslintConfig覆盖了你的设置。最后实在不行加个.eslintignore文件放在项目根目录,内容就两行:

node_modules
dist


这个优先级更高,一般都能搞定。
点赞 7
2026-02-09 19:07