sublime text 不自动编译 typescript——保存 .ts 文件不生成 .js 是正常现象,因 lsp 仅提供语言功能而不调用 tsc;需手动配置构建系统、确保语法标识为 source.ts、正确设置 tsserver_path 和 tsconfig.json。

tsc 不会自动运行,保存 .ts 文件后没生成 .js 是正常现象——Sublime Text 本身不执行编译,只负责编辑;所有编译行为必须显式触发或由监听插件驱动。
为什么 Ctrl+S 后没生成 .js 文件
这不是配置失败,而是 Sublime 的设计逻辑:LSP 插件(如 LSP-typescript)只启动 typescript-language-server 提供语法诊断、跳转和补全,它不调用 tsc。哪怕右下角显示 LSP: tsserver,也和编译完全无关。
- 检查是否误把语法高亮/错误波浪线当成“已编译”——打开生成的
.js文件确认是否存在 - 确认没装已废弃插件(如
TSCompleteMe或TypeScript-Sublime-Plugin),它们会劫持构建流程并静默失败 - 如果用了
npx tsc,但项目里没有package.json或node_modules/typescript,npx会 fallback 到全局版本,而全局 TS 版本可能不兼容项目里的tsconfig.json
构建系统必须匹配 source.ts 语法标识
Sublime 的构建系统靠 selector 字段决定何时激活,不是靠文件后缀。如果右下角显示的是 Plain Text 或 JavaScript,哪怕文件名是 index.ts,构建也不会触发。
使用 Scrapfly SDK(scrapfly-sdk)在 TypeScript 或 JavaScript 中进行网页抓取,用于用户请求抓取 URL、绕过反爬虫防护、渲染页面等场景。
- 打开任意
.ts文件 → 点击右下角语法名 → 手动选TypeScript(不是Babel或JSX) - 若列表无
TypeScript,先通过Package Control: Install Package安装TypeScriptSyntax(轻量)或TypeScript(官方包) - 构建系统中
"selector": "source.ts"必须小写、无空格、无引号外多余字符;写成typescript或.ts都无效 -
working_dir推荐设为"${project_path:${folder}}",而不是"$file_path",否则tsconfig.json可能无法被识别
LiveBuild 监听需与构建系统严格对齐
LiveBuild 是目前最可控的“保存即编译”方案,但它不自己执行命令,只是按配置复用已有构建系统。配置错一个字段,监听就彻底失效。
-
LiveBuild Settings中的selector必须和构建系统里的一致,都是"source.ts" -
cmd和working_dir要和构建系统内容完全一致,不能一个用npx tsc、另一个用tsc.cmd - Windows 用户必须用
tsc.cmd:命令应写成["npx", "tsc.cmd", "$file"],否则 GUI 环境下npx无法解析可执行后缀 - 不要在
LiveBuild配置里加-w参数——它每次只跑单次tsc,tsc -w是长进程,Sublime 会卡住不动
tsserver_path 错误会导致语言功能静默失效
补全、跳转、错误提示全部消失?大概率是 tsserver 根本没连上。它不会报错,只会沉默——这是最易被忽略的故障点。
- 终端里先验证
tsserver --version是否有输出,且和tsc --version一致 - 如果项目用
pnpm或yarn,tsserver在node_modules/.bin/tsserver;全局安装则路径类似/usr/lib/node_modules/typescript/lib/tsserver.js -
tsserver_node_path必须指向真实node可执行文件(用which node查),设为空字符串或错路径,整个服务就起不来 - 项目根目录必须存在
tsconfig.json,否则tsserver进入降级模式,paths、strict等关键选项全部失效
source.ts 没生效、tsserver_path 指向了不存在的路径、或者以为 LSP 在编译——这三处一错,其他全白搭。










