files.exclude是唯一能隐藏资源管理器文件的配置项;必须写入工作区.vscode/settings.json,用"/node_modules":true等glob模式,路径需带/前缀且值为true,仅影响侧边栏显示,不影响终端、Git或构建工具。

files.exclude 是唯一能隐藏资源管理器文件的配置项
想让某个文件夹在左侧资源管理器里彻底消失,必须用 files.exclude,而不是 search.exclude。后者只影响 Ctrl+Shift+F 搜索结果,对侧边栏完全没作用。常见错误是配了 search.exclude 后发现 node_modules 还在那儿,就是混淆了这两个配置。
正确写法必须是完整的 JSON 对象,路径用 glob 模式,且以 **/ 开头才能匹配所有层级:
-
"**/node_modules": true—— 隐藏所有子目录下的node_modules -
"**/.DS_Store": true—— macOS 系统临时文件 -
"**/logs/**": true—— 隐藏整个logs目录及其全部子内容 -
".git": true—— 只匹配项目根目录下的.git,不推荐,漏掉嵌套子模块
别写 "dist/**" 或 "dist",VSCode 不认这种非标准写法,不会生效。
工作区设置 .vscode/settings.json 才真正管用
用户级 settings.json(位于 %APPDATA%\Code\User\settings.json 或 ~/Library/Application Support/Code/User/settings.json)会影响所有项目,但无法满足项目差异化需求。比如前端项目要隐藏 dist,后端项目却要保留它——这时候必须用工作区设置。
操作很简单:
使用约定式提交(Conventional Commits)生成标准化的 Git 提交信息。适用于以下场景: (1) 暂存更改时需要提交信息; (2) 审查 diff 时希望获得结构化摘要; (3) 编写 PR 描述或变更日志(changelog)条目; (4) 用户明确要求“为本次更改编写提交信息”。 该功能会分析已暂存/未暂存的 diff,并生成按类型(type)划分范围的提交信息。
- 确保项目根目录下有
.vscode文件夹(没有就手动建一个) - 在其中新建或编辑
settings.json,填入完整对象,不能只写单个字段 - 保存后资源管理器立刻刷新,无需重启 VSCode
注意:工作区设置优先级高于用户设置,会覆盖同名配置。团队协作时,把 .vscode/settings.json 提交到 Git,就能保证所有人看到一致的文件结构。
隐藏逻辑仅作用于资源管理器,不影响任何其他功能
files.exclude 的本质是“选择性失明”,不是删除或忽略。它只控制左侧资源管理器的视觉呈现,对以下行为完全无影响:
- 终端中执行
ls或dir仍能看到被隐藏的文件 - Git 命令(
git status、git add)照常工作 - 构建工具(Webpack、Vite、tsc)读取源码或输出目录不受干扰
- 调试器、运行任务、扩展插件(如 ESLint、Prettier)仍能正常访问这些路径
所以你放心加规则,哪怕把 **/*.js 都藏了,只要代码还在磁盘上,运行和调试就不会出问题。
容易踩的坑:路径写法、配置位置、生效范围三者必须同时对
三个关键点缺一不可,否则配置就等于白写:
-
路径必须带
**/前缀:写成"node_modules"或"node_modules/"都无效;正确是"**/node_modules" -
必须写进
.vscode/settings.json:只改用户级 settings.json 或只在 UI 设置里点几下,大概率不生效 -
值必须是布尔值
true:写成"false"、"1"或空字符串都会被忽略
最隐蔽的问题是:你以为配好了,其实 VSCode 正在读用户设置,而工作区里根本没 .vscode 文件夹。打开命令面板运行 Developer: Toggle Developer Tools,看 Console 有没有报错解析 settings.json 失败——这是验证配置是否被加载的最快方式。

















