温馨提示×

ubuntu nodejs调试方法有哪些

小樊
33
2025-11-30 09:13:42
栏目: 编程语言

Ubuntu 下常用的 Node.js 调试方法

一 内置 Inspector 与 Chrome DevTools

  • 启动方式:在应用前添加调试参数。使用 –inspect 让应用在启动后等待调试器连接;使用 –inspect-brk 让应用在首行暂停,便于从入口断点开始。默认调试端口为 9229。示例:node --inspect app.js 或 node --inspect-brk app.js。
  • 连接方式:打开 Chrome,访问 chrome://inspect,在 Remote Target 中看到 Node 进程后点击 Inspect 打开 DevTools;也可在 DevTools 的 Sources 面板通过 Filesystem 添加项目目录并直接下断点。
  • 代码内断点:在需要暂停的位置插入 debugger; 语句,配合 --inspect-brk 更容易在启动阶段进入断点。

二 使用 VS Code 调试

  • 启动配置:在 VS Code 中打开项目,进入 Run and Debug,创建 .vscode/launch.json,选择 Node.js 环境。常用配置示例:
    { “version”: “0.2.0”, “configurations”: [ { “type”: “node”, “request”: “launch”, “name”: “Launch Program”, “program”: “${workspaceFolder}/app.js” } ] }。
  • 附加调试:对已在运行的进程,可使用 Attach 配置连接到 9229 端口进行调试。
  • 调试操作:在代码行号左侧点击设置断点,按 F5 启动,支持查看变量、调用栈、单步执行与表达式求值。

三 命令行与第三方工具

  • 命令行调试器:使用 node inspect app.js 进入 CLI 调试界面,支持常用命令如 cont/c(继续)、next/n(下一步)、step/s(进入)、out/o(跳出)、sb()/cb()(设置/清除断点)、bt(堆栈)、repl(交互式求值)等。
  • 增强工具:
    • ndb:基于 Chrome DevTools 协议的高级调试器,安装后执行 ndb your-script.js 即可获得更友好的 UI 与能力。
    • node-inspector:早期的浏览器端调试方案,现多被内置 Inspector 与 ndb 取代。
    • debug 模块:通过 require(‘debug’)(‘namespace’) 输出选择性日志,运行时启用环境变量如 DEBUG=myapp: node app.js*。

四 远程与容器场景的实用建议

  • 远程调试:在服务器上以 –inspect 启动应用,确保 9229 端口在安全组/防火墙放行;本机 Chrome 访问 chrome://inspect 即可连接。若需指定调试端口,可使用 –inspect=0.0.0.0:9229 并在本机通过 chrome --remote-debugging-port=9229 打开 DevTools 进行连接。
  • 容器与 WSL:将 9229 端口映射进容器或 WSL,保持与主机/容器网络互通,再用 chrome://inspect 或 VS Code Attach 连接。
  • 组合工具:nodemon 监听文件变化并自动重启,可与调试器配合使用(注意调试会话重启后需重新 Attach)。

五 快速选择建议

  • 需要图形化与断点管理:优先用 VS Codelaunch 配置或 Chrome DevTools
  • 启动即停、定位初始化问题:用 –inspect-brk + DevTools/VS Code。
  • 无界面服务器环境:用 node inspectndb 的 CLI/远程 UI。
  • 临时排查:用 console.log/errordebug 模块输出关键路径信息。

0