sublime text 需本地安装 tsc 并正确配置 path、working_dir 和插件路径才能正常编译 typescript;常见问题源于 tsc 不可用、tsconfig.json 未识别或构建系统路径错误,须确保终端与 sublime 均能调用 tsc、working_dir 指向项目根目录、插件使用项目级 tsserver。

Sublime Text 本身不执行 TypeScript 编译,tsc 必须由你本地安装并可被 Sublime 调用;编译失败几乎全是 tsc 不可用、tsconfig.json 未被识别或构建系统 working_dir 错位导致的。
确认 tsc 能在终端和 Sublime 中同时运行
Sublime 的构建系统依赖系统 PATH 查找 tsc,但 macOS/Linux GUI 应用(包括 Sublime)通常不继承 Shell 的 PATH,Windows 则常因权限或安装方式导致 tsc 只在管理员 CMD 里有效。
- 终端执行
tsc --version,必须输出版本号(如Version 5.4.5) - 若终端能运行、Sublime 构建时报
'tsc' is not recognized或command not found,说明 PATH 没对上 - macOS/Linux:检查
echo $PATH是否含~/.npm-global/bin或/usr/local/bin;GUI 启动 Sublime 前建议用open -a "Sublime Text"(从终端启动) - Windows:确认 Node.js 安装路径下的
node_modules.bin已加入「系统环境变量」PATH,不是用户变量(尤其使用非管理员账户时) - 避免全局安装后仍出问题:直接用项目级
tsc,即先pnpm add -D typescript,再在构建系统中指定完整路径
构建系统必须显式设置 working_dir
Sublime 默认以当前文件所在目录为工作路径,但 tsc 需要读取项目根目录下的 tsconfig.json。如果文件在子目录打开,tsc 就找不到配置,会退回到默认编译选项(比如 target: es3),报一堆 Cannot find name 'Promise'。
- 菜单栏 → Tools → Build System → New Build System
- 填入以下内容(注意
working_dir是关键):
{
"cmd": ["tsc", "$file"],
"file_regex": "^(.*\.ts?)\s\(([0-9]+),([0-9]+)\):\s*(.*)$",
"selector": "source.ts",
"working_dir": "${project_path:${folder}}",
"variants": [
{
"name": "Build All",
"cmd": ["tsc"]
}
]
}
-
${project_path:${folder}}确保工作路径是项目根目录(有tsconfig.json的地方) - 别用
$file_path—— 它指向当前文件所在目录,不是项目根目录 - 保存为
TypeScript.sublime-build,然后在 Tools → Build System 中选它
tsconfig.json 存在但没生效?检查插件是否绕过它
很多旧插件(如 TypeScript-Sublime-Plugin)自带内嵌 tsserver,根本不读你的 tsconfig.json;即使语法高亮正常,类型检查也会按插件内置规则跑,和你写的配置完全脱节。
- 只装
SublimeTSC(名称无空格),它是唯一只桥接本地tsserver的轻量方案 - 确保
tsserver_path指向项目级路径,例如:"./node_modules/.bin/tsserver"(macOS/Linux)或"./node_modules/.bin/tsserver.cmd"(Windows) - 插件不会自动监听
tsconfig.json变更——改完配置后必须手动执行TS: Restart Server(Cmd+Shift+P / Ctrl+Shift+P 输入) - 验证是否生效:删掉
tsconfig.json中的"lib": ["es2017"],重启服务,看是否立刻报Cannot find name 'Promise'
真正卡住的地方往往不是配置写错了,而是 tsc 和 tsserver 版本不一致、working_dir 没对齐、或者插件偷偷用了自己的 tsserver 而不是你项目里的那个。调试时优先盯住终端能否运行、构建系统是否在正确路径下执行、插件设置里有没有硬编码路径这三点。











