VSCode中各静态分析插件忽略逻辑互不兼容:ESLint插件不读.eslintignore,仅命令行生效;CodeGeeX需配置codegeex.ignorePatterns并重启窗口;Prettier需显式设置prettier.ignorePath;AL CodeCop无文件级忽略,仅支持行注释屏蔽。

静态分析插件(如 ESLint、CodeGeeX、AL CodeCop)在 VSCode 中默认不会读取 .gitignore 或通用排除设置,每种工具必须单独配置忽略逻辑——否则你写的 .eslintignore 或 **/node_modules/** 规则大概率被无视。
ESLint 在编辑器里为啥不认 .eslintignore?
VSCode 的 ESLint 插件根本不会解析 .eslintignore 文件来控制编辑器内实时检查。它只在命令行运行 eslint 时才用这个文件。
- 编辑器中是否高亮报错,取决于
eslint.validate设置的语言列表和当前文件路径是否匹配 ESLint 配置文件(.eslintrc.*)的作用域 -
node_modules、dist等目录“看起来被忽略”,其实是插件内置的安全策略,不是你配的规则生效了 - 真想跳过某些文件?改
.eslintrc.js的overrides字段,比如:overrides: [{ files: ["**/*.test.js"], rules: {} }] - 若想让某个文件彻底不出 ESLint 提示,最直接的办法是删掉
eslint.validate里对应后缀(如"markdown"),但会连带关掉所有该类型文件的检查
CodeGeeX 的 ignorePatterns 必须重启窗口才生效
codegeex.ignorePatterns 是插件专属配置,只在 ≥2.4.0 版本支持,且写错格式或漏掉 **/ 前缀就会失效。
- 必须写成数组形式:
"codegeex.ignorePatterns": ["**/node_modules/**", "**/*.log"],少一个引号或括号都会导致插件禁用补全 - 路径必须用 glob 语法,
node_modules/不行,得写**/node_modules/**才递归忽略子目录 - 改完后必须关闭并重新打开整个 VSCode 窗口——仅 “Developer: Reload Window” 不加载新规则
- 全局配置(用户 settings.json)无法被工作区配置覆盖,一旦设了
**/.cache/**,所有项目都绕不开
Prettier 的 .prettierignore 默认完全不生效
VSCode 的 Prettier 插件(esbenp.prettier-vscode)默认根本不看 .prettierignore,除非你手动告诉它路径。
- 必须在设置里显式配置:
prettier.ignorePath→ 值为字符串".prettierignore"(不带引号,也不加./) -
.prettierignore必须放在工作区根目录(即 VSCode 打开的那个文件夹),子目录下无效 - 插件版本必须 ≥10.0.0;老版本即使设了
ignorePath也静默忽略 - 验证是否生效:右下角语言模式显示
Prettier,且保存被 ignore 的文件时无格式化动作;若仍触发,先检查editor.defaultFormatter是否真的指向 Prettier
AL CodeCop 等语言专用分析器的忽略更底层
像 al.enableCodeAnalysis 这类设置是 AL 扩展自己的开关,不走通用 ignore 机制,而是通过配置项直接控制分析器启停。
- 启用分析需设
al.enableCodeAnalysis: true,再用al.codeanalyzers指定具体分析器,例如:["CodeCop", "AppSourceCop"] - 没有类似
.gitignore的文件级忽略语法;想跳过某文件,只能靠##[CodeCop]行级注释临时关闭,如:##[CodeCop] AA0001
- 这类分析器的规则粒度极细(比如强制运算符空格),且错误直接下划线标出,不依赖 ESLint 那套配置链路
- 如果发现某条规则不该触发,优先查文档确认它是 CodeCop 还是 AppSourceCop 的规则,再决定是在
al.codeanalyzers里移除,还是用注释屏蔽
真正容易被忽略的是:不同插件的 ignore 机制互不兼容,.prettierignore 对 ESLint 无效,codegeex.ignorePatterns 对 Prettier 无效,而 .eslintignore 对 VSCode 编辑器本身也无效——你得按工具一个个对齐,不能指望一套规则通吃。


















