You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ESLint是否会默认自动排除node_modules目录下的文件?

ESLint自动忽略node_modules文件夹的对应规则说明
  • 这个现象是ESLint内置硬编码的默认忽略规则导致的,和你有没有手动配置.eslintignore、有没有在.eslintrc里写ignorePatterns规则没有关系。
  • 从ESLint v4.10.0版本开始,/node_modules/*、/bower_components/*两个路径就被设为了默认全局忽略项,只要你没有手动配置规则强制检查这两个目录下的文件,ESLint在扫描匹配到的文件列表时,会自动过滤掉这两个目录下的所有文件,不会执行lint检查。
  • 你查阅CLI相关文档没有找到对应描述,是因为这部分规则的说明放在了ESLint文档中「配置忽略文件」的专门章节,没有放在命令行参数的说明页面中。
  • 注意不要和shell通配符的行为混淆:很多人会误以为**/*.js这个通配符本身不会遍历node_modules目录,实际上多数常用shell(比如开启globstar配置的Bash 4+、Zsh)下,**是会递归遍历所有层级子目录的,node_modules下的js文件本来会被通配符匹配到。过滤这些文件的动作是ESLint拿到shell传入的文件路径列表之后,通过内置规则完成的,不是shell层面的跳过。
  • 这个默认规则有一个特殊逻辑:如果你在执行ESLint命令时,显式把node_modules下的具体文件路径作为参数传入(比如直接写./node_modules/.bin/eslint ./node_modules/xxx/index.js),默认忽略规则不会生效,ESLint会直接检查这个指定文件;只有当文件是被glob通配符匹配扫描出来、不是你手动显式传入的具体路径时,才会被默认规则过滤。

如果你确实需要检查被默认忽略的文件,可以在执行命令时加上--no-ignore参数跳过所有忽略规则(包括默认忽略、自定义忽略规则),但日常开发场景下不推荐这么做:node_modules中都是第三方依赖代码,不需要做lint校验,强制检查会大幅拖慢ESLint执行速度,还会抛出大量和业务代码无关的报错。

内容的提问来源于stack exchange,提问作者u936293

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 15:54:32