根本原因是tsserver未连接或tsconfig.json未被正确加载;需确认tsserver_path配置正确、项目根目录存在tsconfig.json、右下角语法设为TypeScript,并通过控制台日志验证服务启动状态。

为什么装了插件却没any报错、不标红、跳转失效
不是插件坏了,是 tsserver 根本没连上,或连上了但没读到 tsconfig.json。Sublime Text 本身不提供任何类型检查能力,所有提示都依赖 tsserver 进程 + 正确加载的配置文件。常见静默失败现象包括:any 不标黄、import 报 Cannot find module、Ctrl+Click 无响应。
- 按
Ctrl+`打开控制台,操作后看是否有Starting tsserver with:日志;若只有Could not start server: Error: spawn tsserver ENOENT,说明tsserver_path填错了 - 右下角显示的是
JavaScript或TypeScriptReact?说明文件没绑定对语法——必须手动设为TypeScript(不是Babel或Plain Text) -
tsserver启动了但没报错?立刻确认当前视图是否在项目根目录下打开——tsserver默认只从当前文件路径向上查找tsconfig.json
tsserver_path 怎么填才真正生效
填错路径不会报错,只会静默失效。关键不是“能不能在终端运行”,而是 Sublime 能否在它启动时的环境里找到并执行该路径下的 tsserver。
- 推荐用项目级路径:
"./node_modules/.bin/tsserver"(macOS/Linux)或"./node_modules/.bin/tsserver.cmd"(Windows),这样能确保版本与package.json一致 - 别填全局路径如
/usr/lib/node_modules/typescript/lib/tsserver.js——它可能对应旧版 TS,且无法读取项目级tsconfig.json中的paths、baseUrl - 用
nvm/volta管理 Node 的,Sublime 启动时读的PATH和你终端不一致,必须显式指定路径,不能依赖环境变量 - 终端运行
tsc --version和tsserver --version输出必须一致;若后者报command not found,先执行npm install -g typescript
tsconfig.json 被忽略的隐蔽原因
tsserver 启动成功 ≠ 配置生效。很多高级检查(如 strict、路径别名、JSX 支持)失效,根源常在 tsconfig.json 没被识别或语义不兼容。
使用 Scrapfly SDK(scrapfly-sdk)在 TypeScript 或 JavaScript 中进行网页抓取,用于用户请求抓取 URL、绕过反爬虫防护、渲染页面等场景。
-
moduleResolution设为node16或bundler,但代码里混用require('./utils')?tsserver会直接放弃解析整个 import 链,模块报错却不提示原因 - 用了
@/components别名,但tsconfig.json里漏了baseUrl,或baseUrl指向了错误目录(它必须是相对于tsconfig.json的路径,不是项目根) -
.tsx文件不识别 JSX?需确认两处:"enable_tsx": true(插件设置),以及语法包支持tsx扩展名(如TypeScriptSyntax的extensions配置) - 没
tsconfig.json时,tsserver自动降级为“无配置模式”,strict、noImplicitAny全部失效——哪怕你写了any也不会标黄
要不要配 ESLint?怎么避免和 tsserver 冲突
tsserver 负责类型层面的检查(类型错误、未定义变量、模块解析),ESLint 负责风格与潜在逻辑问题(未使用变量、重复导入、危险的 any 使用)。两者互补,但共存时容易互相掩盖错误。
- 如果项目已迁移到
eslint+@typescript-eslint,装SublimeLinter-eslint,并在项目根加.eslintrc.js,重点确认parser: '@typescript-eslint/parser'和plugins: ['@typescript-eslint']已启用 - 别同时启用
SublimeLinter-tslint和SublimeLinter-eslint——tslint已废弃,规则冲突会导致部分错误不显示 -
tsserver的any提示(标黄)和eslint的@typescript-eslint/no-explicit-any是两套机制:前者是语言服务层,后者是静态分析层,建议都保留,但注意它们触发条件不同 - 性能影响:
tsserver在后台常驻,eslint默认保存时触发。若感觉卡顿,可在SublimeLinter设置中关闭on_save,改用手动触发
真正卡住人的从来不是“怎么装”,而是 tsserver 是否真在用你写的 tsconfig.json、是否在你打开的目录下启动、是否识别了 .tsx 和路径别名——这些细节不验证,高级检查永远停留在“看起来装好了”。










