IDE中AI辅助编程时,如果不做限制,AI 扫描冗余文件不仅浪费 Token(甚至可能导致上下文溢出),还可能干扰它对核心逻辑的理解。
Claude Code 默认读取行为
Claude Code 不会主动扫描并读取所有文件,而是按需读取------即当你提问或执行任务时,它会根据上下文决定读取哪些文件。但以下情况会触发文件读取:
- 你直接问"帮我看这个文件"
- 你要求分析项目结构
- 执行代码补全、重构等任务时搜索相关代码
对于 .venv/、__pycache__/、build/、dist/、.git/ 这些目录:
.git/--- Claude Code 内部会用git命令访问版本信息,但不会直接读取目录内容.venv/、__pycache__/--- 默认不会 主动读取,但没有.claudeignore时,如果你让它搜索整个项目,可能会遍历进去build/、dist/--- 同上,建议明确排除
.claudeignore 的作用与语法
.claudeignore 放在项目根目录,语法与 .gitignore 完全相同,Claude Code 会跳过这些文件/目录的读取与搜索。
建议你把当前的 .claudeignore 完善为:
# Python 环境与缓存
.venv/
__pycache__/
*.pyc
*.pyo
.mypy_cache/
.pytest_cache/
# 构建产物
build/
dist/
*.egg-info/
# 版本控制
.git/
# 日志
log/
*.log
# 数据库文件
*.db
*.sqlite3
# 图片/媒体
*.png
*.jpg
*.jpeg
*.gif
*.ico
# 临时测试文件
test*.py
*_test.py
# 其他不需要的文件(按你项目实际情况)
# frontend/ # 前端目录
# data/ # 数据目录
总结
| 机制 | 说明 |
|---|---|
.claudeignore |
主要控制手段,语法同 .gitignore |
.gitignore |
Claude Code 也会尊重其中的规则(部分场景) |
| 默认行为 | 不主动扫描,按任务需要读取 |
.venv 等 |
建议显式加入 .claudeignore 保险起见 |