Debian 下 Node.js 调试技巧
一 核心方法与快速上手
node --inspect app.js 或 node --inspect-brk app.js。随后可在 Chrome DevTools 的 chrome://inspect 页面连接,或在 VS Code 中通过“运行与调试”附加到调试端口。也可直接用命令行调试器 node inspect app.js 进行步进与断点控制。为便于复用,建议将启动方式写入 package.json 的 scripts(如 "debug": "node --inspect-brk app.js")。二 开发期高效工作流
.vscode/launch.json,常用配置示例:
{ "type": "node", "request": "launch", "name": "Launch Program", "program": "${workspaceFolder}/app.js" }{ "type": "node", "request": "attach", "name": "Attach", "port": 9229 }{ "type": "node", "request": "launch", "name": "Debug Next.js", "skipFiles": ["<node_internals>/**"], "command": "npm run dev" }
结合 nodemon 做热重载调试,可在 nodemon.json 中配置 "exec": "node --inspect-brk src/your-script.js",保存即自动重启并进入调试。使用 debug 模块输出命名空间日志,通过环境变量按需开启:DEBUG=myapp:* node app.js,或细分到子模块 DEBUG=myapp:server,myapp:db node app.js,避免生产刷屏。三 远程与容器场景
node --inspect-brk app.js,确保调试端口(默认 9229)对调试机可达(如开放防火墙/安全组)。在本地 VS Code 使用 attach 配置并填写远程 address(如 "address": "192.0.2.10")即可连接;也可在 Chrome DevTools 的 Connection 页添加远程地址进行连接。若代码运行在容器内,需将 9229 端口映射到宿主机,并在 DevTools/VS Code 中使用宿主机地址连接。四 生产问题定位与事后分析
console.log,便于在不同环境控制输出并集中采集。对偶发崩溃,可启用 核心转储(core dump),配合 llnode 进行事后分析,查看 JavaScript 堆栈 与 原生层对象 的映射关系。注意仅在必要时开启,避免性能与磁盘压力。五 常见问题与排查清单
lsof -iTCP:9229 -sTCP:LISTEN),结束旧进程或更换端口(如 --inspect=9230)。