1. Trae 文件树里全是 .meta,先把问题说清楚
如果你最近在用 Trae 做开发,尤其是打开过 Unity、Cocos、部分前端脚手架或者带资源管线的项目,大概率会遇到一个很烦的现象:左侧文件树里密密麻麻全是.meta文件,真正想找的.ts、.json、.prefab反而被淹没。.meta是什么?简单说,它是很多工具链用来记录资源元信息的附属文件,比如某个贴图的导入设置、某个脚本的 GUID 映射。它本身对写业务代码的人没什么直接价值,但会实打实地占满你的文件树。
Trae 作为一款 AI 编辑器,文件树默认会展示工作区里的真实文件,所以.meta自然也会被列出来。问题不在于 Trae 做错了什么,而在于我们需要告诉它:这些后缀我不想看。解决方式就是files.exclude配置。这篇就围绕「Trae 中不显示指定文件后缀 .meta」这件事,把配置片段、验证步骤、常见报错一次讲透。适合谁?适合所有用 Trae 打开过带.meta项目、并且希望工作区干净一点的开发者。下面我按「先配好、再验证、最后排障」的顺序来,你可以直接复制。
2. 前置准备:在 TaoToken 拿到可用的模型能力
在动手改配置之前,先说一个容易被忽略的点:Trae 里的 AI 能力(补全、对话、Agent)需要后端模型服务支撑。如果你打算一边调文件树、一边让 AI 帮你解释配置项,最好先把模型接入准备好。我这边习惯用 TaoToken 来做统一接入,它的官网是 https://taotoken.net/?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= ,API 入口是 https://taotoken.net/api (这个不加 UTM)。
你需要做的只有一件事:拿到一个 API Key。进入控制台后创建密钥,路径是 https://taotoken.net/console?utm_source=taotoken_aicg_blog_end&utm_content=console&utm_campaign=rewrite ,密钥管理页在 https://taotoken.net/api-keys?utm_source=taotoken_aicg_blog_end&utm_content=api-keys&utm_campaign=rewrite 。创建完复制出来,后面在 Trae 的模型设置里填进去即可。如果你只是想先验证模型通不通,可以直接用模型对话页试一句: https://taotoken.net/models?utm_source=taotoken_aicg_blog_end&utm_content=models&utm_campaign=rewrite 。
这一步不是必须的,但强烈建议做。原因很现实:files.exclude的写法在不同编辑器里有细微差别,Trae 基于 VS Code 体系,配置项基本一致,但遇到不生效时,让 AI 帮你逐条比对 glob 语法会快很多。接入文档在 https://taotoken.net/doc?utm_source=taotoken_aicg_blog_end&utm_content=doc&utm_campaign=rewrite ,遇到参数问题可以对照。
3. 可复制的 files.exclude 配置片段
Trae 的设置分两层:用户级(全局)和工作区级(项目内)。隐藏.meta这种需求,我建议放在工作区级,因为不同项目后缀不一样,全局写死容易误伤。工作区配置写在项目根目录的.trae/settings.json或.vscode/settings.json里(Trae 兼容后者)。如果你只想当前项目生效,用工作区文件;想所有项目都隐藏,就改用户设置。
核心配置就一段,直接复制:
{ "files.exclude": { "**/*.meta": true, "**/*.meta.json": true, "**/.DS_Store": true } }逐行解释一下。**/*.meta里的**表示任意层级目录,*表示任意文件名,合起来就是「不管在哪个子目录,只要以.meta结尾就隐藏」。**/*.meta.json是防止有些工具生成的是.meta.json双后缀,单独补一条更稳。.DS_Store是顺手加的,macOS 用户会懂。
如果你还想隐藏别的后缀,比如日志或缓存,可以继续加:
{ "files.exclude": { "**/*.meta": true, "**/*.log": true, "**/Library": true, "**/Temp": true } }注意**/Library这种是隐藏整个目录,不是后缀。files.exclude支持文件和目录两种模式,目录名直接写就行。这里有个坑:一旦你把某个目录排除,Trae 的全局搜索默认也不会搜它,所以别把src、assets这类源码目录误加进去。
提示:
files.exclude只影响「显示」,不删除文件。被排除的文件依然在磁盘上,Git 也照常跟踪。想彻底不提交,那是.gitignore的事,两者别混。
4. 在 Trae 设置中验证排除是否生效
配置写完不代表生效,得验证。有两种方式,我推荐都用一遍。
第一种是图形界面验证。打开 Trae,按Ctrl + ,(macOS 是Cmd + ,)进入设置,在搜索框输入files.exclude。你会看到一个表格,左边是模式(Pattern),右边是开关。如果你之前是在 json 里写的,这里应该能同步看到**/*.meta这一行,并且开关是打开的。如果这里看不到,说明你的 json 写错了位置,或者格式有语法错误(比如多了个逗号)。
第二种是直接看文件树。回到左侧资源管理器,找一个原本有.meta的目录,展开。如果配置生效,.meta应该全部消失,只剩业务文件。如果还在,先别急,按Ctrl + Shift + P打开命令面板,输入Reload Window重载窗口。很多配置项需要重载才刷新,这是最常见的「以为没生效」。
再补一个更严格的验证:用 Trae 的全局搜索(Ctrl + Shift + F)搜一个.meta里才有的字符串。如果搜不到,说明排除对搜索也生效了;如果搜得到,说明只隐藏了文件树、没影响搜索,这属于正常行为,取决于版本。实测下来,Trae 较新版本里files.exclude会同时作用于文件树和搜索,但search.exclude才是专门管搜索的。想精确控制搜索,可以再加一段:
{ "search.exclude": { "**/*.meta": true } }这样文件树和搜索结果都干净了。
5. 本篇常见错排查
配置不生效,九成是下面几个原因,我按出现频率排。
第一,json 语法错误。settings.json是严格 JSON,不能有注释、不能有尾逗号。很多人从网上复制时带了//注释,直接整段失效。排查方法:把内容贴到任意 JSON 校验工具里过一遍,或者看 Trae 设置界面有没有红色波浪线。
第二,写错了文件位置。工作区配置必须在项目根目录的.trae/settings.json或.vscode/settings.json。如果你在用户设置里写,但项目里又有一份覆盖,可能互相打架。判断方法:看设置界面顶部标签是「用户」还是「工作区」,切到对应标签确认。
第三,glob 写成了*.meta而不是**/*.meta。*.meta只匹配根目录下的.meta,子目录里的不生效。这是最隐蔽的坑,因为根目录确实隐藏了,你会以为成功了,结果一展开子目录又冒出来。统一用**/*.meta最稳。
第四,改了没重载。前面说过,Reload Window一下。如果还不行,完全退出 Trae 再打开。
第五,和其他插件冲突。有些资源管理插件会自己接管文件树渲染,覆盖files.exclude。排查方法:临时禁用可疑插件,看.meta是否消失。如果消失了,就是插件问题,去插件设置里找它自己的排除项。
注意:如果你在 Trae 里用 AI Agent 做批量重构,被
files.exclude隐藏的文件,Agent 默认也看不到。如果你确实需要让 AI 处理.meta,记得临时把这条排除关掉,处理完再打开。这个切换成本很低,但不知道的话会卡很久。
6. 后续:把配置和模型接入一起管起来
文件树干净之后,Trae 的体验会顺很多,尤其是项目大了以后,找文件不再靠肉眼扫。如果你还想把 AI 编码这条链路也理顺,比如让 Agent 长期跑重构任务、或者接 Claude Code 这类编码工作流,可以看一下 Coding Plan: https://taotoken.net/coding-plan?utm_source=taotoken_aicg_blog_end&utm_content=coding-plan&utm_campaign=rewrite 。它适合需要稳定模型配额、长期做编码和 Agent 任务的场景。Claude Code 相关的接入说明在 https://taotoken.net/claude-code?utm_source=taotoken_aicg_blog_end&utm_content=claudecode&utm_campaign=rewrite ,有需要可以对照配置。
回到.meta这件事,最后给你一个我自己的习惯:每个新项目初始化时,先把files.exclude和search.exclude一起写好,再开始写代码。这样从第一天起文件树就是干净的,不用等到被.meta淹没才想起来配。配置本身只有几行,但省下的找文件时间,一个月下来很可观。