如何在VSCode中启用工作区src/node_modules子文件夹的快速打开搜索?
我之前也碰到过一模一样的情况——把项目模块放在src/node_modules里,结果VSCode直接把它当成根目录的node_modules给忽略了,Ctrl+P根本搜不到里面的文件。试了好几种配置都没效果,后来才搞清楚问题出在通配符的优先级和配置覆盖上。
给你几个亲测有效的解决步骤:
1. 精确配置排除规则,覆盖默认设置
VSCode默认会排除所有**/node_modules目录,所以你需要用更具体的路径来覆盖这个规则。打开VSCode的设置文件(可以按Ctrl+,打开设置面板,然后点击右上角的{}图标进入settings.json编辑模式),添加以下配置:
// 控制文件搜索(包括Ctrl+P)的排除规则 "search.exclude": { "**/node_modules": true, // 保留根目录node_modules的排除 "**/src/node_modules": false // 明确不排除src下的node_modules }, // 控制左侧资源管理器是否显示该目录(可选,如果你想在侧边栏看到它的话) "files.exclude": { "**/node_modules": true, "**/src/node_modules": false }
这里的关键是更具体的路径会覆盖通用路径,所以**/src/node_modules的优先级比**/node_modules高,设置为false就会让VSCode不再忽略这个目录。
2. 检查工作区设置是否冲突
如果你是在项目的.vscode/settings.json(工作区设置)里修改的,要确保用户设置(全局设置)没有覆盖它——不过通常工作区设置优先级更高。如果之前的配置没生效,先把工作区里的相关配置清空,再重新添加上面的内容试试。
3. 重启VSCode或重新加载窗口
有时候配置修改后不会立即生效,按Ctrl+Shift+P打开命令面板,输入Reload Window回车,重新加载一下VSCode窗口,应该就能看到效果了。
额外:检查.gitignore的影响
如果你的项目根目录的.gitignore里写了src/node_modules,VSCode默认会读取.gitignore的规则来排除文件。不过没关系,只要你在search.exclude里明确把**/src/node_modules设为false,就会覆盖.gitignore的规则,不会影响搜索。
按上面的步骤操作后,应该就能通过Ctrl+P搜索到src/node_modules里的文件了。
内容的提问来源于stack exchange,提问作者Eduardo

