必须验证tsserver进程是否启动:执行TypeScript: Show Server Log,日志需含Starting tsserver;tsserver --version须终端可运行,否则需修复PATH;项目级TS需手动设tsserver_path为./node_modules/.bin/tsserver(Win加.cmd);Sublime环境变量独立,macOS应将npm bin加入~/.zprofile,Windows需确认%AppData% pm在系统PATH中;构建系统须配准working_dir和file_regex才支持错误跳转。

Sublime 本身不支持 TypeScript,装了插件 ≠ 能用。核心卡点永远是 tsserver 没跑起来,或者构建系统找不到 tsc —— 这两点没调通,语法高亮都可能不稳,更别说类型检查和编译。
怎么确认 tsserver 真正在工作
插件静默失败是常态,不能只看右下角显示 “TypeScript”。必须验证语言服务进程是否真正启动:
- 按
Ctrl+Shift+P(Win/Linux)或Cmd+Shift+P(macOS),输入TypeScript: Show Server Log回车;日志里得有Starting tsserver和后续初始化信息,空白或报Cannot find module 'typescript'就说明路径错了 -
tsserver --version必须在终端里能执行成功;如果报command not found,说明 npm 全局 bin 路径没进系统PATH(macOS/Linux 查$(npm config get prefix)/bin,Windows 查%AppData% pm) - 插件默认只认全局
tsserver,但项目用了yarn或pnpm装局部typescript?那就得手动指定路径:"tsserver_path": "./node_modules/.bin/tsserver"(macOS/Linux)或"tsserver_path": "./node_modules/.bin/tsserver.cmd"(Windows)
为什么 Build System 总是报 'tsc' is not recognized
GUI 应用(如 Sublime)的环境变量和终端不共享,尤其 macOS/Linux 下 Shell 配置(~/.zshrc)对 Sublime 无效。这不是插件问题,是系统 PATH 加载机制差异:
完整的Galileo AI平台 TypeScript/JS SDK 参考,用于评估、观察和保护 GenAI 应用。适用于构建 Node.js 或 TypeScript 项目。
- 别依赖终端能运行就以为 Sublime 也能——在 Sublime 里按
Ctrl+Shift+P→ 输入Build With→ 新建一个临时.sh构建,用echo $PATH看它实际读到的路径 - macOS 用户最稳妥的解法:把
export PATH="$(npm config get prefix)/bin:$PATH"加进~/.zprofile(而非~/.zshrc),然后重启 Sublime - Windows 用户直接检查系统环境变量里的
%AppData% pm是否在PATH中,改完必须重启 Sublime 才生效
自定义 TypeScript.sublime-build 的关键字段
构建系统不是贴个 JSON 就完事,working_dir 和 file_regex 错一个,tsconfig.json 就白配,错误也不跳转:
-
"working_dir": "${project_path:${folder}}"—— 强制以项目根目录为工作路径,确保tsc能正确加载tsconfig.json;用$file_path容易导致配置文件找不到 -
"file_regex": "^(.*\.ts):(\d+),(\d+):\s+(.*)$"—— 必须严格匹配tsc默认错误格式(注意转义点号和逗号),否则点击错误不会跳转到对应行 -
"variants"里加"Watch"很实用,但命令要用["tsc", "-w", "$file"],不是--watch(旧版写法已失效);监听模式下需手动按Ctrl+Break停止
tsconfig.json 生效但插件不认 compilerOptions
这是最容易误解的一点:TypeScript 插件的实时提示(波浪线、跳转、补全)和 tsc 编译走的是两套逻辑。插件用轻量版 tsserver,只响应基础类型推导和模块解析,几乎不读 compilerOptions.strict、jsx、lib 等字段:
- 想让
noImplicitAny报错?只能靠Ctrl+B触发构建,看控制台输出 - 插件会读
include/exclude和baseUrl+paths(但baseUrl必须是相对路径),其他字段基本忽略 - 如果你发现改了
tsconfig.json后插件行为没变,别折腾设置,先Ctrl+Shift+P→TypeScript: Reload Project手动重载一次
真正麻烦的从来不是“怎么装”,而是 PATH、路径层级、插件与 CLI 工具的能力边界这三者之间的错位。每一步都得验证输出,而不是看界面有没有变。

















