根本原因是 tsserver 未启用增量编译和模块缓存,需在 tsconfig.json 中配置 "incremental": true、"composite": true(多项目时)、"moduleResolution": "node",禁用 "files",确保本地安装 TypeScript 并正确配置 LSP 路径及 JSX 支持。

为什么超大项目里 TypeScript 补全卡顿、跳转失败?
根本不是 Sublime 性能问题,而是 tsserver 默认没启用模块缓存和增量语义分析。超大项目(尤其含大量 node_modules/@types 或复杂路径别名)下,tsserver 每次请求都重新解析整个依赖图,CPU 占用飙升,LSP 请求超时,补全就“转圈”或直接空白。
- 必须在
tsconfig.json中显式启用"incremental": true和"composite": true(若用多项目引用) -
"moduleResolution": "node"不可省略——否则@/utils这类别名无法被tsserver索引进补全上下文 - 禁用
"files"字段:一旦写了"files": ["src/index.ts"],tsserver就忽略所有自动推导,补全退化为“仅当前文件内符号” - 确保
node_modules/typescript是项目本地安装(pnpm add -D typescript),而非全局版本——版本错位会导致paths解析失败或 JSX 类型丢失
LSP-typescript 如何强制走项目级 tsserver 而非全局?
默认配置会 fallback 到全局 tsserver,但超大项目往往依赖特定 TS 版本(如 v5.4.x 对 module: nodenext 的支持更稳),全局版本不匹配就会报 Cannot find name 'AsyncIterable' 之类错误。
- 打开
Preferences → Package Settings → LSP-typescript → Settings - 在用户设置中写死路径:
{ "command": ["./node_modules/.bin/tsserver"], "initializationOptions": { "typescriptVersion": "useWorkspaceTsdk" } } - macOS/Linux 直接用
./node_modules/.bin/tsserver;Windows 必须用./node_modules/.bin/tsserver.cmd - 路径必须以
./开头——这是相对项目根目录的,不是 Sublime 安装路径
tsx 文件里 JSX 元素不识别、补全缺失?
不是插件没装,是 tsserver 没加载 JSX 支持层。Sublime 的 LSP 插件不会自动读取 jsx 编译选项,必须让 tsserver 明确知道你在写 React。
完整的Galileo AI平台 TypeScript/JS SDK 参考,用于评估、观察和保护 GenAI 应用。适用于构建 Node.js 或 TypeScript 项目。
-
tsconfig.json中必须设"jsx": "react-jsx"("react"已弃用,会导致类型擦除) - 确认
"lib"包含"dom"和"es2020"(或更高),否则document.createElement等 API 无提示 - 如果用了
createRoot或useTransition,需加"types": ["react", "react-dom"],否则@types/react不被索引 - 改完
tsconfig.json后,必须执行Ctrl+Shift+P → LSP: Restart Servers,LSP 不会自动 reload 配置
路径别名(@/components)补全始终为空?
常见错觉是“插件不支持 alias”,实际是 tsserver 根本没把 baseUrl + paths 加载进解析上下文——它只认项目根目录下的 tsconfig.json,且要求 moduleResolution 与之匹配。
立即学习“前端免费学习笔记(深入)”;
-
tsconfig.json必须放在项目最外层根目录,子包里的tsconfig.json会被忽略 -
"baseUrl": "./"和"paths": { "@/*": ["src/*"] }必须成对出现,且"moduleResolution": "node"必须开启 - 避免
"extends"指向父目录配置——路径是相对于当前tsconfig.json的,跨目录容易 404 - 验证是否生效:在
.ts文件里输入import {} from '@/,看补全列表是否弹出src/下的文件夹——没弹就是配置未被tsserver读取
超大项目里最易被忽略的是 tsconfig.json 位置和 incremental 开关——它们不报错,但会让类型推导降级为单文件模式,补全和跳转就只剩语法层面的字符串匹配。

















