SublimeWebInspector 是通过 WebSocket 连接 Chrome 远程调试端口(需手动启动 --remote-debugging-port=9222)的第三方插件,支持断点、步进、控制台及 sourcemap 调试,但依赖 Chrome 端口开启、正确配置、sourceMap 可访问及缓存参数调优。

Sublime Text 本身不内置 Web Inspector 功能,SublimeWebInspector 是一个第三方插件,它通过 WebSocket 连接 Chrome 的远程调试协议(CDP),把浏览器的调试能力“搬进”编辑器。它不是替代 Chrome DevTools,而是把关键调试动作(断点、步进、控制台、源码映射)同步到 Sublime 界面里 —— 前提是你得让 Chrome 开着调试端口,且插件能连上。
Chrome 必须启动 --remote-debugging-port=9222 才能通信
这是整个链路最常卡住的环节。SublimeWebInspector 默认尝试连接 localhost:9222,但 Chrome 默认不开启该端口。
- 关掉所有已运行的 Chrome 实例(包括后台进程),否则新命令可能被忽略
- Windows:用命令行启动
chrome.exe --remote-debugging-port=9222 --user-data-dir=C:\temp\chrome_dev(--user-data-dir避免和日常 Chrome 冲突) - macOS:终端执行
/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --remote-debugging-port=9222 --user-data-dir=/tmp/chrome_dev - Linux:
google-chrome --remote-debugging-port=9222 --user-data-dir=/tmp/chrome_dev - 验证是否生效:访问
http://localhost:9222/json,能看到 JSON 列表说明端口通了
swi.sublime-settings 里改错端口或路径会导致“找不到调试目标”
插件读取配置后直接发起 WebSocket 连接,一旦配置项写错,错误提示往往很模糊,比如 “No targets found” 或 “Connection refused”。
-
chrome_remote_port必须和你启动 Chrome 时用的端口号一致(默认是9222,别写成9223或漏掉) -
chrome_executable在 macOS/Linux 上容易出问题:不能只写"Google Chrome",要填绝对路径,比如"/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" -
reload_on_save设为true时,保存 JS 文件会触发页面刷新 —— 如果页面没在 Chrome 当前 tab 打开,就会静默失败,建议初期先设为false排查
断点打在 TypeScript 或压缩文件里,必须靠 sourceMap 映射回原始代码
SublimeWebInspector 支持 sourcemap,但不会自动识别或加载 —— 它依赖浏览器已加载的 sourceMap URL(通常由 //# sourceMappingURL=xxx.js.map 注释提供)。
- TypeScript 项目:确保
tsconfig.json含"sourceMap": true,且编译后 .js 文件末尾有正确的sourceMappingURL注释 - Webpack/Vite 构建:检查
devtool配置是否启用(如"source-map"),并确认生成的 .map 文件能被浏览器按路径请求到(404 就失效) - 断点只能设在 Sublime 当前打开的原始文件(.ts/.jsx)中;如果打开的是 dist 目录下的 .js,即使有 map,也不会触发源码跳转
大型项目下 max_breakpoints 和 source_map_cache_size 不调容易卡死
插件对断点和 sourcemap 做本地缓存,但默认值偏保守。100+ 文件的项目里,设了 20 个断点再开几个 tab,就可能让 Sublime 响应变慢甚至无响应。
- 在
swi.sublime-settings中显式加大:"max_breakpoints": 50、"source_map_cache_size": 200 - 禁用不需要的功能降低开销:把
"enable_network_panel"和"enable_dom_panel"设为false(除非真要查网络或 DOM) - 调试完及时清除断点:快捷键
F9在每行切换,或用命令面板执行SWI: Clear all breakpoints
真正难的不是装上插件,而是让 Chrome、构建产物、sourcemap、Sublime 配置四者时间戳对齐、路径可访问、端口不冲突 —— 其中任一环在后台静默失败,都会表现为“断点不命中”或“控制台空白”,得逐层验证,不能只盯着 Sublime 看。


















