在 Debian 上调试 Node.js,常见方式可以按「问题类型」和「调试手段」来分。下面给你一个实用清单,从最基础到进阶。
node -v
npm -v
which node
如果是多版本(nvm / n / 系统包),先确认用的是哪个 Node:
ls -l $(which node)
Debian 上常见问题:
/usr/bin/node)console.log('debug', { a, b });
生产环境建议用:
debug 模块pino / winstonnode inspect app.js
或在代码中加:
debugger;
浏览器方式:
node --inspect app.js
然后打开:
chrome://inspect
.vscode/launch.json{
"type": "node",
"request": "launch",
"name": "Debug Node",
"program": "${workspaceFolder}/app.js"
}
如果是子进程 / cluster:
"autoAttachChildProcesses": true
EACCES: permission denied
✅ 正确做法:
sudo chown -R $USER:$USER /your/project
❌ 不要:
sudo npm install -g
lsof -i :3000
或
ss -ltnp | grep 3000
MODULE_NOT_FOUND
检查:
npm ls
npm install
Debian 上注意:
NODE_PATHnpm ci 比 npm install 更稳node app.js
或:
node --trace-warnings app.js
node --inspect --max-old-space-size=4096 app.js
生成 heap:
node --heapdump
journalctl -u your-node-service -f
[Service]
ExecStart=/usr/bin/node /opt/app/app.js
Environment=NODE_ENV=production
✅ 小问题:console.log
✅ 逻辑问题:VS Code + breakpoint
✅ 异步问题:async_hooks
✅ 性能问题:profiler / heap
✅ 线上问题:日志 + systemd
如果你愿意,可以告诉我:
我可以给你「针对你这个场景」的调试步骤。