直接在项目根目录的.vscode/settings.json中配置files.exclude,优先使用工作区设置而非全局设置,路径需相对于工作区根目录,支持*、、!等glob模式,不支持正则;配错会导致文件树清空。

直接改 files.exclude 就行,但写错路径会让整个文件树变空——不是没生效,是匹配太宽把 src、lib 全干掉了。
files.exclude 写在哪?优先用工作区设置
别碰全局用户设置(settings.json),它会被工作区覆盖,且容易污染其他项目。直接在项目根目录建 .vscode/settings.json,写入:
{
"files.exclude": {
"node_modules": true,
"**/node_modules": true,
"dist": true,
"**/dist": true,
".git": true
}
}
注意:"node_modules": true 只匹配根目录下的 node_modules;"**/node_modules": true 才能递归匹配子模块里的嵌套 node_modules(比如 lerna monorepo 里各包下的)。
- 工作区设置只对当前项目生效,团队协作时可直接提交
.vscode/目录 - 如果已存在
.vscode/settings.json,只往"files.exclude"对象里追加键值,别整个重写 - 键名是 glob 模式,不是正则——不支持
^、$、?等,只认**(任意层级)、*(单层)、!(取反)
为什么改了没反应?常见匹配失效原因
VSCode 的 files.exclude 是“从文件树中移除”,不是“折叠”或“禁用”。没消失,大概率是路径没对上:
使用一条命令部署ProbeChain Rydberg测试网代理节点。自动注册为Agent(NodeType=1),免gas,支持macOS/Linux/Windows。触发词:/r
- 路径始终相对于工作区根目录,不是当前打开的文件夹——比如你在
src/utils里编辑,"utils": true不会隐藏它 -
"./node_modules"或"**/node_modules/"(末尾带斜杠)都无效,正确写法是"node_modules": true - 文件夹名含空格(如
my folder)直接写"my folder": true,不用引号转义 - 改完保存后无需重启 VSCode,但资源管理器可能卡顿半秒——等几秒再看,别立刻怀疑配置失败
search.exclude 和 files.exclude 别混用
search.exclude 只影响 Ctrl+Shift+F 搜索结果,不影响侧边栏;files.exclude 才真正让文件夹从资源管理器消失。两者独立,互不继承:
- 想在搜索里也跳过
node_modules?单独配"search.exclude": { "**/node_modules": true } - 只配了
search.exclude却发现侧边栏还有node_modules?正常,它本来就不管显示逻辑 - GitLens、ESLint 等插件会绕过
files.exclude自己扫描文件系统——这不是 bug,是插件行为,关掉它们再验证排除是否生效
临时过滤和插件补充方案
日常调试或快速查看时,不需要动配置:
- 资源管理器顶部有个输入框,输入
!node_modules可临时隐藏(仅当前会话有效) - 需要按语言差异化过滤(比如只在 JS 项目里隐藏
lib)?用工作区设置 +"[javascript]": { "files.exclude": { "lib": true } } - 要隐藏
.vscode自身?加一条"**/.vscode": true,不影响配置加载
真正麻烦的是多层嵌套的 node_modules(比如 pnpm 的 node_modules/.pnpm 下还套着一堆),这时候 "**/node_modules/**": true 比单纯 "**/node_modules": true 更彻底——但小心别误杀 src/node_modules 这类合法路径。










