sublime text 本身不支持服务端热重载,必须依赖 ts-node-dev 监听文件变更并自动重启服务;构建系统需正确配置调用 ts-node-dev、设置 working_dir、适配路径别名及错误正则,且注意环境 path 一致性。

直接说结论:Sublime Text 本身不支持服务端热重载,所谓“秒级热重载”必须靠外部工具链驱动——核心是 ts-node-dev 监听文件变更 + Sublime 正确触发构建系统调用它,而不是靠编辑器内置功能。
为什么 Ctrl+B 运行后改代码没自动重启?
因为默认的 Sublime 构建系统(比如只调用 tsc 或 ts-node)是一次性执行,不带监听能力。改完保存,ts-node 进程早就退出了,自然不会响应后续变更。
-
ts-node-dev才是关键:它启动一个守护进程,监听.ts文件变化,自动重启服务进程 - Sublime 的构建系统必须调用
ts-node-dev,而不是ts-node或tsc - 如果项目用了路径别名(如
@/utils),还得额外加-r tsconfig-paths/register,否则模块解析失败 - Windows 用户注意:
ts-node-dev在某些 PowerShell 环境下会卡住,建议在构建系统里显式设"shell": true并用cmd /c包裹命令
构建系统怎么写才真正生效?
不能只复制网上“ts-node $file”那种模板。真实可用的配置要覆盖工作目录、环境变量、错误定位,且适配 Sublime 的构建输出解析逻辑。
使用一条命令部署ProbeChain Rydberg测试网代理节点。自动注册为Agent(NodeType=1),免gas,支持macOS/Linux/Windows。触发词:/r
- 确保
"selector": "source.ts"—— 不是typescript或.ts,大小写和拼写必须严格匹配 -
"working_dir": "${project_path:${folder}}"必须设置,否则ts-node-dev找不到tsconfig.json和package.json - 错误正则要用
"file_regex": "^(.*\.ts)\((\d+),(\d+)\):\s*(.*)$",不然点击报错行跳转不到源码 - Linux/macOS 示例:
"cmd": ["ts-node-dev", "--respawn", "--transpile-only", "-r", "tsconfig-paths/register", "$file"] - Windows 示例:
"cmd": ["cmd", "/c", "ts-node-dev --respawn --transpile-only -r tsconfig-paths/register "$file""]
常见报错:“Cannot find module '@/xxx'” 怎么解?
这不是 Sublime 的问题,而是 ts-node-dev 启动时没加载路径映射。即使 tsconfig.json 里写了 "paths",Node.js 默认也看不懂 @ 别名。
- 必须安装
tsconfig-paths:npm install --save-dev tsconfig-paths - 构建命令里加
-r tsconfig-paths/register,且位置要在ts-node-dev参数之后、入口文件之前 - 确认
tsconfig.json中"baseUrl": "."已设置,且"paths"的 key 是以"/"结尾(如"@/*": ["src/*"]) - 如果用的是全局
ts-node-dev,它可能读不到项目本地的tsconfig-paths,建议用npx ts-node-dev替代
真正卡住人的地方,往往不是配置本身,而是 Sublime 启动进程时继承的 PATH 和当前 shell 不一致——比如你终端里能跑 ts-node-dev,但 Sublime 构建系统里报“command not found”。这时候得在构建系统里硬编码完整路径,或者改用 npx 调用,别省那几毫秒启动时间。










