VSCode 里跳转到定义失效了怎么办?
最近在写 React 项目,VSCode 突然不能按住 Ctrl 点击跳转到函数定义了,之前好好的。我试过重启编辑器、重装插件,也检查了 jsconfig.json 文件,但还是不行。
我的项目结构是标准的 create-react-app 脚手架生成的,用的是 TypeScript。比如下面这段代码,点击 useUserStore 就没法跳转:
import { useUserStore } from '@/stores/user';
function Profile() {
const user = useUserStore();
return <div>{user.name}</div>
}
首先检查下你的jsconfig.json或者tsconfig.json,确保路径别名配置正确。create-react-app默认可能没配这个,需要手动加:
这里需要注意两点:
1. baseUrl要设置对,一般用"."表示项目根目录
2. paths里的@/*要对应你的实际路径,create-react-app通常是src文件夹
如果配置没问题,可能是VS Code的TypeScript服务抽风了。试试这两个方法:
强制重启TS服务:
1. 在VS Code里打开命令面板(Ctrl+Shift+P)
2. 输入并选择"TypeScript: Restart TS server"
检查工作区TypeScript版本:
1. 在底部状态栏找到TypeScript版本号(一般在右下角)
2. 点击它,选择"Use Workspace Version"
有时候VS Code会莫名其妙用自带的旧版TS,换成你项目里的版本就好了。
还不行的话,看看是不是这些插件冲突了:
1. 禁用所有插件再逐个启用
2. 特别检查JS/TS相关插件,比如"JavaScript and TypeScript Nightly"
最后的大招是删除VS Code的缓存:
1. 完全退出VS Code
2. 删除项目下的.vscode文件夹
3. 删除全局缓存(位置取决于系统,一般在~/.vscode或%APPDATA%/Code)
我上周也被这问题折腾了一下午,后来发现是TS版本自动更新后抽风了。现在的编辑器有时候比代码bug还难搞...