sublime debugger 不识别 vs code 的 launch.json,需使用 .sublime-debugger 配置文件,顶层为 configurations 数组,含 type、request、name;python 调试需匹配 debugpy 版本(推荐 1.6.7),并指定绝对 python.path;node.js 调试需启用 sourcemaps 并正确配置 outfiles 和 runtimeargs。

Sublime Debugger 插件装了但 launch.json 不生效?
根本原因是 Sublime Text 默认不读取 VS Code 风格的 launch.json——它压根不认识这个文件。Sublime Debugger(即 subl-debugger)用的是自己的一套配置机制,叫 .sublime-debugger,放在项目根目录或用户配置目录下。
- 别把 VS Code 的
.vscode/launch.json直接拷进 Sublime 项目里,它会被完全忽略 - 新建配置必须是
.sublime-debugger(注意前面带点,是隐藏文件名) - 内容格式是 JSON,但顶层必须是
configurations数组,且每个配置必须含type、request、name - 常见
type值:python、node、go,不是python3或node20这类
Python 调试时断点不命中,debugpy 版本对不上
Sublime Debugger 依赖 debugpy(Python)或 vscode-js-debug(JS)这类后端调试适配器,但不是所有版本都兼容。比如 debugpy >= 1.8 默认启用新协议,而旧版 Sublime Debugger 插件可能只认 1.6.x。
- 先查插件日志:按
Ctrl+Shift+P→ 输入Debugger: Show Log,看有没有Connection refused或Protocol mismatch - 降级 debugpy 更稳妥:
pip install debugpy==1.6.7(Python 3.8+ 推荐) - 确保
python.path在.sublime-debugger里指向你实际用的解释器,比如/usr/bin/python3或~/miniforge3/bin/python,不能只写python - 如果用 virtualenv,路径必须是激活后的绝对路径,否则断点加载失败
Debugger: Start Debugging 按下没反应,终端里也没报错?
这通常不是插件坏了,而是调试会话卡在「等待适配器就绪」阶段。Sublime Debugger 不会自动拉起 debugpy,得手动启动监听,或者靠配置触发。
- 对 Python:要么提前运行
python -m debugpy --listen 5678 --wait-for-client,再点启动;要么在.sublime-debugger里加"preLaunchTask": "python-debugpy"并配好Tasks.sublime-settings - 检查
port是否被占:lsof -i :5678(macOS/Linux)或netstat -ano | findstr :5678(Windows) - Windows 用户注意:路径分隔符必须用正斜杠
/或双反斜杠\,单反斜杠会导致 JSON 解析失败,静默跳过配置 - 确认 Sublime 是最新版(4147+),老版本对调试器握手超时时间太短,容易假死
调试 Node.js 时 require 报错或源码映射失效
Node.js 调试依赖 sourcemap 和入口路径对齐。Sublime Debugger 对 ts-node、esbuild 或 webpack 构建产物支持有限,容易找不到原始 .ts 文件。
- 优先用原生 Node 启动:配置
"type": "node"+"program": "./src/index.js",避免ts-node中间层 - TS 项目务必生成
.map文件,并在.sublime-debugger里加"sourceMaps": true和"outFiles": ["./dist/**/*.js"] - 如果用 ESM(
type: "module"),需显式指定"runtimeArgs": ["--enable-source-maps"],否则断点无效 - 不要在
node_modules里设断点——Sublime Debugger 默认跳过,想进去得加"skipFiles": []并清空数组
Debugger: Show Log 输出,比反复改 launch.json 有效得多。









