断点不触发的根本原因是调试会话未真正启动,需检查launch.json中program路径、type为"node"、sourceMap配置及是否成功attach到含--inspect的Node进程。

断点不触发,八成是 launch.json 里 program 指错了路径,或根本没连上 Node 进程——VS Code 不执行代码,它只负责把调试器 attach 到一个已启用 inspector 的进程上。
为什么断点点了却完全不暂停?
这不是“断点没设好”,而是调试会话压根没真正启动。最直接的判断依据是:看 VS Code 底部状态栏有没有出现「调试正在运行」字样。没有,说明配置失败或进程未附着。
-
type必须是"node"(小写),不是"Node"或"pwa-node"(除非你明确装了新版 Debugger for Node.js 扩展) -
program必须指向一个 Node 能直接执行的文件,比如"${workspaceFolder}/src/server.js";如果项目用npm start启动,就别硬写program,改用runtimeExecutable+args - 没配
cwd时,Node 默认从 VS Code 打开的根目录启动,但你的require('./config')可能实际依赖的是src/下的相对路径——这时就会报Cannot find module,调试器静默退出,看起来就像“点了 F5 没反应” - 终端里跑
node --version能成功,不代表调试器能调用它:某些 zsh/fish 配置下,VS Code 继承不到 shell 的 PATH,得在launch.json里显式加"env": { "PATH": "/usr/local/bin:..." }
TS/ESM 项目断点停在 .js 文件里?sourceMap 没对齐
你在 src/index.ts 打了断点,结果停在 dist/index.js 的第 87 行,变量名全是 _a、_b——这不是 bug,是你没告诉 VS Code “这行 JS 对应哪行 TS”。
使用一条命令部署ProbeChain Rydberg测试网代理节点。自动注册为Agent(NodeType=1),免gas,支持macOS/Linux/Windows。触发词:/r
- 编译必须生成
.map文件:tsconfig.json里"sourceMap": true,Vite 用户确认build.sourcemap为true,Webpack 用户检查devtool是'source-map'而非'eval' -
launch.json中必须同时满足三项:"sourceMaps": true、"outFiles": ["${workspaceFolder}/dist/**/*.js"](路径要和你构建输出一致)、"resolveSourceMapLocations": ["${workspaceFolder}/src/**", "!**/node_modules/**"] - 断点是空心红圈?说明映射失败。打开「调试控制台」搜
Loaded source map from,看到 404 就代表路径错,看到成功加载但行号仍错位,大概率是构建时用了inlineSourceMap却没关inlineSources,导致 map 内容混在 JS 里解析异常
想调试 node_modules 里的代码,但断点根本不生效
VS Code 默认跳过所有 node_modules 和内置模块(lib/internal 等),所以你在 node_modules/axios/lib/core/Axios.js 里打的断点永远不会触发。
- 先确认你真需要进依赖源码:多数情况查
package.json版本、看 GitHub issues 更快;只有复现稳定 bug 且怀疑是依赖本身逻辑问题时才值得深入 - 临时启用:在
launch.json对应配置里加"skipFiles": [](清空默认跳过列表),但会极大拖慢启动速度 - 更稳妥的做法是加
"smartStep": true(跳过明显无关的库代码)+"skipFiles": ["<node_internals>/**"]</node_internals>(只跳内置,不跳第三方) - 如果依赖是 ESM 格式且你用
type: "module",还需在launch.json加"runtimeArgs": ["--experimental-specifier-resolution=node"],否则import语句解析失败,进程起不来
最常被忽略的一点:调试器是否真的连上了进程,和你有没有点红点,是两件事。哪怕 launch.json 全对,只要 Node 启动时没带 --inspect(或 VS Code 没自动加上),断点就是摆设。别只盯着界面,去「调试控制台」翻第一行日志——看到 Debugger attached. 才算真正开始。

















