Conceptos básicos de depuración
8 ejemplos para empezar a depurar backends de Node.js: 6 básicos y 2 intermedios.
Busca en todas las páginas de la documentación
8 ejemplos para empezar a depurar backends de Node.js: 6 básicos y 2 intermedios.
Node.js 24.18.0 instalado localmente. Navegador Chrome o Edge para DevTools.
node --version # v24.18.0node --inspect src/main.ts
# Debugger listening on ws://127.0.0.1:9229chrome://inspect -> Configurar -> añade localhost:9229 -> inspeccionar--inspect=9230 si está ocupado0.0.0.0 solo en redes de desarrollo de confianza: --inspect=0.0.0.0Relacionado: Búsqueda de fugas de memoria - instantáneas de montón en DevTools
node --inspect-brk src/main.ts--inspect-brk sin tiempo de esperadebuggerexport function charge(amountCents: number) {
if (amountCents < 0) {
debugger; // la ejecución se pausa cuando el inspector está adjunto
throw new Error("invalid amount");
}
return { charged: amountCents };
}debugger antes de la fusión - ESLint no-debugger en CItsx cuando el inspector está habilitadoNODE_OPTIONS en scripts npm{
"scripts": {
"dev:debug": "NODE_OPTIONS='--inspect' tsx watch src/main.ts"
}
}cross-env NODE_OPTIONS=--inspecttsx watch reinicia el proceso: vuelve a adjuntar DevTools después de la recargaimport { inspect } from "node:util";
console.log(inspect({ orderId: "ord_1", meta: { retry: 2 } }, { depth: 5, colors: true }));console.log para correlación segura en producción con requestIdutil.inspect imprime objetos anidados legibles en la terminalRelacionado: Conceptos básicos de registro - registros estructurados en producción
function fail() {
throw new Error("payment provider timeout");
}
try {
fail();
} catch (err) {
console.error(err instanceof Error ? err.stack : err);
}Error.captureStackTrace personaliza la pila en el código de la biblioteca// tsconfig.json
{
"compilerOptions": {
"sourceMap": true,
"inlineSources": true
}
}.ts, no .js transpiladastsc + node --inspect dist/main.js para depuración similar a produccióntsx maneja TS directamente sin un paso de compilación separado# Encontrar PID
pgrep -fl "node dist/main"
# Adjuntar el inspector a un proceso en vivo (pausa breve)
kill -USR1 <pid>
# Luego node registra: Debugger listening...SIGUSR1 habilita la inspección en un Node en ejecución (si no se inició con --inspect)Versiones de la pila: Esta página fue escrita para Node.js 24.18.0 (LTS activa), npm 10+, TypeScript 5.6+, Express 5, Fastify 5 y NestJS 11.
Revisado por Chris St. John·Última actualización: 16 jul 2026