tsserver未连接或未加载tsconfig.json导致高级功能失效;需确认tsserver_path正确、文件在项目根目录打开、右下角语法设为typescript,并通过控制台日志验证启动状态。

tsserver 没连上,或者连上了但没读到 tsconfig.json,高级提示(比如路径别名跳转、any 标黄、strict 报错)就全失效——不是插件问题,是语言服务根本没按你的项目配置跑起来。
为什么 Ctrl+Click 跳不到 @/utils,悬停也不显示类型
根本不是语法高亮没装好,而是 tsserver 启动时没加载你的 tsconfig.json,导致它完全不知道 baseUrl 和 paths 是啥。常见静默失败场景:
- 文件不是在项目根目录下打开的——
tsserver默认只从当前视图路径向上找tsconfig.json,开个子目录里的.ts文件,它就找不到配置 -
tsconfig.json里写了"baseUrl": "./src",但实际tsconfig.json在项目根,而./src是相对于它自己的路径,不是相对于你打开的文件 -
moduleResolution设成"node16"或"bundler",但代码里还混用require('./lib'),tsserver直接放弃整条 import 链,报Cannot find module却不说明原因 - 用了
.tsx但没开 JSX 支持:"enable_tsx": true没配,或语法包不识别.tsx扩展名(得确认scope是source.tsx)
tsserver_path 填错不会报错,只会彻底静默失效
填错路径不会弹窗、不会报红,Sublime 就当没这回事,只留语法高亮。关键不是“终端能跑”,而是 Sublime 启动时能否在它自己的环境里执行那个路径。
- 推荐填项目级路径:
"tsserver_path": "./node_modules/.bin/tsserver"(macOS/Linux)或"tsserver_path": "./node_modules/.bin/tsserver.cmd"(Windows),确保和package.json里装的 TypeScript 版本一致 - 别填全局路径如
/usr/lib/node_modules/typescript/lib/tsserver.js——它可能对应旧版 TS,且无法解析paths别名 - 用
nvm/volta管 Node 的,Sublime 启动时读的PATH和你终端不一样,必须硬编码,不能依赖环境变量 - 填完立刻验证:
Ctrl+`打开控制台,打开.ts文件,看有没有Starting tsserver with:日志;若只有Could not start server: Error: spawn tsserver ENOENT,就是路径错了
右下角显示 Plain Text 或 JavaScript,所有功能都白搭
这是最常被跳过的一步:Sublime 不会自动把 .ts 文件绑定到 TypeScript 语法。没绑对,插件压根不触发。
- 打开任意
.ts文件 → 点右下角语法名(比如Plain Text)→ 选TypeScript(不是TypeScriptReact,也不是JavaScript) - 如果列表里没有
TypeScript,说明语法包没加载:用Ctrl+Shift+P→ 输入Package Control: Install Package→ 安装TypeScriptSyntax(作者sublimelsp,轻量且 ST4 兼容) - 想永久生效:选好后,菜单 →
View→Syntax→Open all with current extension as…→ 再选TypeScript - 装完必须重启 Sublime Text 4;若仍无效,检查
Packages/User/下是否有空的TypeScript.sublime-syntax,有就删掉(ST4 会优先加载 User 目录同名文件)
LSP-typescript 比 SublimeTSC 更省心,但配置项藏得深
如果你不想手动管 tsserver_path,LSP-typescript 是更现代的选择——它自动下载并管理 tsserver,但默认不读项目级 node_modules,得手动切。
- 先装
LSP和LSP-typescript(注意名称无空格,不是TypeScript Language Server) - 首次启用会自动拉取
tsserver,但默认用全局版本;要让它用项目里的,进LSP-typescript → Settings,改"command"为:["./node_modules/.bin/tsserver"](Win 加.cmd) - 验证是否生效:
Ctrl+`看日志里有没有LSP-typescript: starting tsserver,再试Ctrl+Click跳转——如果还跳不到,大概率是当前文件不在项目根目录下打开 - 注意:LSP 默认不开启保存时编译,要自动编译得另配构建系统,不是靠语言服务器
真正卡住人的从来不是“怎么装”,而是 tsserver 启动了却没读配置、路径填对了却因 Node 环境差异找不到、tsconfig.json 存在却因 baseUrl 写错被忽略——这些都不会报错,只给你一个“好像能用,但高级功能全哑火”的假象。











