Node.js调试需正确配置--inspect-brk启动参数、launch.json及source map。推荐用node --inspect-brk或nodemon --inspect-brk启动,手动配置launch.json的type、runtimeExecutable、env和sourceMaps,确保TypeScript源码断点有效,排查时关注端口、nodemon版本与ts-node适配。

调试 Node.js 应用不是简单点个“运行”就完事,关键在配置准确、断点合理、环境一致。VSCode 自带的调试能力足够强大,但很多人卡在 launch.json 配置或启动方式上,导致断点不生效、变量看不到、甚至根本进不了调试模式。
Node.js 从 v8.0+ 开始原生支持 --inspect 参数,这是 VSCode 调试的基础。直接用 node app.js 启动是无法被 VSCode 附加(attach)的。
node --inspect-brk app.js:加 -brk 会在第一行暂停,方便你提前设好断点nodemon,加上 --inspect-brk 并传给 node:nodemon --inspect-brk app.js
npm start 直接启动——除非你在 package.json 的 script 里明确写了 --inspect-brk
不要依赖自动检测,手动创建 launch.json 更可靠。选择 “Node.js” 环境后,优先用 launch 类型(而非 attach),尤其适合从头启动的应用。
node
launch(本地启动)或 attach(连接已运行进程)"${env:HOME}/.nvm/versions/node/v18.18.2/bin/node"
NODE_ENV: "development" 等环境变量,和运行时保持一致./dist/index.js,并确保已先执行 tsc
VSCode 调试器能读取 source map,但前提是构建工具(如 tsc、webpack、vite)生成了正确的 map 文件,并在 launch.json 中启用 sourceMaps: true。
sourceMaps: true 且 map 文件存在,VSCode 会自动映射到运行时代码user.id === 123,只在特定数据下暂停console.log(req.url) 或修改局部变量值(谨慎使用)90% 的调试失败都出在环境或配置错位,而不是代码本身。
--inspect 使用 9229,可在参数中指定 --inspect=9230,并在 launch.json 的 port 字段同步修改--inspect-brk 在 app.js 前面,例如:nodemon --inspect-brk --watch src -e ts --exec ts-node src/index.ts
skipFiles(默认跳过 node_modules),或尝试关闭 “Enable JavaScript Source Map Support” 再打开ts-node --inspect-brk 启动,并在 launch.json 中设置 "runtimeArgs": ["--inspect-brk"] 和 "program": "${workspaceFolder}/src/index.ts"
基本上就这些。调试不是玄学,是配置、约定和工具链的配合。把启动参数、launch.json、source map 三者对齐,VSCode 就能稳稳帮你定位问题。
以上就是VSCode调试Node.js应用的正确姿势的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号