在Ubuntu系统中,JavaScript调试可根据运行环境(浏览器端、Node.js服务端)选择不同工具,以下是常用且高效的调试方案:
适用于调试运行在浏览器中的JavaScript代码(如React、Vue等前端项目),通过可视化界面实现断点、变量监控等功能。
F12/Ctrl+Shift+I),打开开发者工具。适用于调试Node.js运行的后端代码(如Express、Koa等服务),通过命令行或Chrome DevTools实现。
debugger;语句(代码执行到此处会暂停);node debug your_script.js启动调试模式,使用cont(继续)、next(下一行)、repl(进入REPL交互模式)等命令调试。--inspect(自动暂停在第一个断点)或--inspect-brk(启动后立即暂停)参数,例如:node --inspect-brk your_script.js;chrome://inspect,点击“Open dedicated DevTools for Node”,即可像调试前端代码一样设置断点、查看变量。VS Code作为主流代码编辑器,内置了强大的JavaScript调试功能,支持浏览器和Node.js环境,无需额外安装插件(部分功能需扩展)。
Ctrl+Shift+D),点击“创建launch.json文件”,选择对应环境(如“Node.js”或“Chrome”);
launch.json(Node.js):{
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "launch",
"name": "Debug JS",
"program": "${workspaceFolder}/your_script.js",
"skipFiles": ["<node_internals>/**"]
}
]
}
launch.json(Chrome调试前端):{
"version": "0.2.0",
"configurations": [
{
"type": "chrome",
"request": "launch",
"name": "Debug Frontend",
"url": "http://localhost:3000", // 前端项目地址
"webRoot": "${workspaceFolder}"
}
]
}
通过日志输出定位问题,适用于生产环境或无法直接调试的场景,常用工具包括:
console模块:console.log()输出变量值,console.error()输出错误信息,console.time()/console.timeEnd()测量代码执行时间。const winston = require('winston');
const logger = winston.createLogger({
level: 'info',
format: winston.format.json(),
transports: [
new winston.transports.File({ filename: 'error.log', level: 'error' }),
new winston.transports.File({ filename: 'combined.log' })
]
});
logger.info('This is an info message');
const pino = require('pino')();
pino.info('This is an info message');
tail -f error.log实时查看日志文件,或结合journalctl查看系统日志(如journalctl -u your-service -f)。以上方法覆盖了Ubuntu下JavaScript调试的主要场景,可根据实际需求选择:前端代码优先使用浏览器开发者工具或VS Code;后端Node.js代码推荐VS Code或Chrome DevTools集成;复杂项目可结合日志工具辅助定位问题。