在 Linux 环境下调试 JavaScript,不同场景差别很大。下面按「运行环境」和「效率」给你一套实战型推荐方案,从前端到后端都有覆盖。
最直观、最高效
google-chrome --remote-debugging-port=9222
然后访问:
chrome://inspect
✅ 适合:
about:debugging 调试扩展/Workernode --inspect-brk app.js
然后打开:
chrome://inspect
或:
https://chrome-devtools-frontend.appspot.com/
✅ 比 console.log 强 10 倍
.vscode/launch.json{
"type": "node",
"request": "launch",
"name": "Debug Node",
"program": "${workspaceFolder}/app.js"
}
✅ 服务器端 JS 调试首选
node inspect app.js
常用命令:
cont / c
next / n
step / s
watch('expr')
repl
适合:
console.log()
console.warn()
console.error()
console.table()
console.time() / timeEnd()
✅ 适合快速定位问题
debug 模块(工程化必备)npm install debug
const debug = require('debug')('app:main');
debug('start server');
DEBUG=app:* node app.js
✅ 避免生产环境污染日志
推荐方式:
await 放在明确位置try/catch避免:
Promise.then(x => console.log(x))
工具:
node --inspect + Heap Snapshotprocess.memoryUsage()ps aux | grep node
node --inspect -p PID
nvm ls
nvm use 18
| 场景 | 推荐方案 |
|---|---|
| 前端 JS | Chrome DevTools |
| Node 后端 | VS Code 调试 |
| 服务器 CLI | node --inspect |
| 快速排查 | console + debug |
| 内存问题 | Heap Snapshot |
✅ 别用 console.log 定位复杂 bug
✅ 优先断点,而不是猜
✅ 优先图形化工具
✅ 异步问题一定要看调用栈
如果你愿意,可以告诉我:
我可以直接给你一套针对性调试流程。