❗注意~ 我建议你先看一下你的VSCode版本是多少?
如果大于等于 1.74.x,那么非常建议你看下去哈,如果不是,也稍微建议你看一下~
为什么呢?
我们先看一个效果哈
可以看到,当我们摁着Command(Ctrl)并Click进入三方依赖的时候,左侧的文件树并不会定位到目标文件了!
正常情况应该如下:
这无疑是一件非非非常糟糕的事情,因为很多时候,我们需要看到左侧的文件结构,并做一些其他的事情。
现在,没了!怎么办?!
经过一系列的排查,甚至还去debug了vscode的源码(相当头疼),最终定位到了一个判断语句!
截图是1.74版本的代码,和1.72版本的代码做了对比,发现多了这么一个if判断:
大概的意思好像是“是否应该自动显示项目”...
继续深入这个方法:
可以看到shouldAutoRevealItem上面的注释好像说去match一个值
搜索了一下之后,看到了一个之前忽略的Release Notes:
简单机器翻译一下:
“通过引入一个新的设置 Explorer.autoReveaExcluse,已经修复了 #87956(“允许为每个特定文件夹设置 Explorer.autoReveae”)的问题。如果启用了自动显示功能,这个设置允许您配置在资源管理器中自动显示哪些文件。AutoReveaExcluse 设置使用通配符模式排除文件,类似于 files.excue,还支持通过 when 子句进行兄弟匹配。”
其中默认将node_modules文件夹的匹配语句加了进去,即默认会将node_modules文件夹内的内容加入一个黑名单,在黑名单内的文件,在编辑器打开的时候,左侧的树状菜单就不会自动定位到目标文件。
找到问题了!
OK,既然找到了问题(其实也不是问题,而是一个新增配置项),我们就按需修改一下就行了:
我这里把**/node_modules这一项给删除了,如下图:
然后,它就好了!!!
一些题外话
那么这个问题是怎么💣出来的呢?
起因是我正在维护一个VSCode插件:Fe-jump:一款辅助前端工程文件跳转的vscode插件
它非常好用!它可以让你非常方便的点击package.json里的依赖名称之后,就帮你跳转到对应的依赖项的源文件,但是前段时间,它忽然不好使了,我甚至还收到了一个issue:
原来我还以为是VSCode的bug导致的无法刷新文件树,就连夜想了很多方案先fix掉了这个问题,修复的commit可以看这里:github.com/xicunyang/f…
当自己空下来的时候还是想定位一下这个问题,为什么之前可以,现在就不可以了呢?难道真的是VSCode的bug嘛?理论上不应该呀...
所以经过不断的debug VSCode的源码,加上询问ChatGPT,最终定位到了上面的if判断位置
最后才发现其实是VSCode的新增配置项导致的,哈哈哈。
过程很辛苦,结果很舒服~
以后还是要记得常看看VSCode的Release Notes才可以啊~
最后,可以装一下试试看! Fe-jump:一款辅助前端工程文件跳转的vscode插件