atom默认不跳过测试文件,需通过.gitignore、ignorednames、directory pattern或.atomignore显式配置排除;修改后须重启atom或重建索引才生效。

Atom 默认不会跳过测试文件,除非你明确告诉它哪些是测试文件、怎么识别、在哪生效——它不自动猜,也不内置“test/”或“*.spec.js”为忽略项。
为什么 test/ 目录还在搜索结果里
Atom 的搜索行为由两套规则叠加控制:core.excludeVcsIgnoredPaths(读 .gitignore)和 core.ignoredNames(硬编码忽略列表)。但 test/ 不在默认 ignoredNames 里,且多数项目 .gitignore 也没写 test/(只写了 node_modules/、dist/),所以它照常被索引、参与搜索。
- 检查
.gitignore是否真包含test/、__tests__/、*.test.js等行 - 打开 Settings → Core → Ignored Names,手动添加
test、__tests__、*.spec.js、*.test.ts(注意末尾不加斜杠表示文件,加斜杠表示目录) - 改完必须重启 Atom,热重载不刷新忽略逻辑
Find in Project 面板里的 File/directory pattern 怎么精准过滤
这个输入框不是装饰,是实际生效的 glob 过滤器。留空才全扫;填了就严格按规则裁剪范围——但它只过滤“文件名匹配”,不判断内容或路径语义。
- 只搜源码、排除所有测试文件:
**/*.{js,ts,jsx,tsx}(注意大括号需插件支持,原生只认*和**) - 更稳妥写法(兼容原生):
src/**/*或lib/**/*,把测试目录从路径上绕开 - 想显式排除:
!**/*.test.js或!**/__tests__/**——但!必须顶格,前面不能有空格,否则静默失效 - 填错时无报错提示,只会返回空结果;建议先用终端验证:
rg --files | grep -E '\.(js|ts)$' | grep -v '/test/'
.atomignore 是最可靠但常被忽略的方案
它比 .gitignore 更底层、更优先,且无需 Git 仓库、无需重启——改完立刻生效,Atom 启动时最先读它。
- 在项目根目录新建
.atomignore,内容示例:
test/ __tests__/ *.spec.js *.test.ts e2e/
tree-view(侧边栏)、Find in Project、fuzzy-finder 全局生效** 可跨目录,? 匹配单字符,! 不可用.atomignore 和 .gitignore 冲突,前者胜出真正卡住人的不是“怎么写规则”,而是规则写完没生效却以为 Atom 坏了——记得每次改配置后,用 Cmd+Shift+P → Fuzzy Finder: Rebuild Index 强制刷新索引,否则旧文件可能还在缓存里。.











