Depurando Como um Profissional com as Ferramentas Integradas do VS Code

Todo desenvolvedor JavaScript começa com console.log()
. É rápido, funciona e é familiar. Mas quando você está rastreando um bug através de múltiplas chamadas de função, operações assíncronas ou mudanças complexas de estado, o logging no console se torna um jogo de acertar a toupeira. Você acaba poluindo seu código com instruções de log, reconstruindo constantemente e ainda perdendo o quadro completo.
O depurador integrado do VS Code muda isso. Em vez de adivinhar o que seu código está fazendo, você pode pausar a execução, inspecionar variáveis em qualquer ponto, percorrer funções linha por linha e entender exatamente como sua aplicação se comporta. Este artigo mostra como aproveitar essas ferramentas poderosas para depuração de JavaScript, TypeScript, React e Node.js—transformando horas de frustração em minutos de resolução focada de problemas.
Principais Conclusões
- Substitua console.log pelo depurador integrado do VS Code para inspeção precisa de código e rastreamento de variáveis
- Configure o launch.json para ambientes de depuração JavaScript, TypeScript, React e Node.js
- Use breakpoints condicionais e logpoints para depuração direcionada sem modificação de código
- Domine os controles de depuração como step over, step into e o Debug Console para solução eficiente de problemas
Configurando a Depuração no VS Code para JavaScript e TypeScript
Criando Sua Configuração launch.json
O coração da depuração no VS Code é o arquivo launch.json
. Pressione F5
em qualquer projeto JavaScript e o VS Code solicitará que você crie um. Aqui está uma configuração básica para depurar JavaScript no VS Code:
{
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "launch",
"name": "Debug Current File",
"program": "${file}",
"skipFiles": ["<node_internals>/**"]
}
]
}
Para TypeScript, adicione suporte a source maps na sua configuração:
{
"type": "node",
"request": "launch",
"name": "Debug TypeScript",
"program": "${file}",
"outFiles": ["${workspaceFolder}/dist/**/*.js"],
"sourceMaps": true,
"skipFiles": ["<node_internals>/**"]
}
Controles Essenciais de Depuração
Uma vez configurado, a depuração se torna direta:
- Defina breakpoints clicando à esquerda de qualquer número de linha (ou pressione
F9
) - Inicie a depuração com
F5
- Step over no código com
F10
(executa a linha atual) - Step into em funções com
F11
(mergulha nas chamadas de função) - Step out com
Shift+F11
(completa a função atual)
O painel Variables mostra todas as variáveis locais e globais no escopo. O painel Watch permite rastrear expressões específicas. O Call Stack mostra seu caminho de execução—inestimável para entender como você chegou a um ponto específico.
Técnicas Avançadas de Breakpoints
Breakpoints Condicionais
Clique com o botão direito em qualquer breakpoint e selecione “Edit Breakpoint” para adicionar condições. O depurador só pausa quando sua condição avalia como verdadeira:
// Condição do breakpoint: user.role === 'admin'
// Só para para usuários admin
Logpoints: O Console.log Melhorado
Logpoints imprimem no Debug Console sem parar a execução. Clique com o botão direito na margem e selecione “Add Logpoint”. Use chaves para expressões:
User {user.name} triggered action at {new Date().toISOString()}
Não é mais necessário remover console.logs antes de fazer commit—logpoints existem apenas durante sua sessão de depuração.
Discover how at OpenReplay.com.
Depuração React com Integração de Navegador
Configurando a Depuração de Navegador para React
Para aplicações React, use o JavaScript Debugger integrado do VS Code (a extensão Debugger for Chrome agora está obsoleta). Configure-o para aplicações React usando Vite ou Create React App:
{
"type": "pwa-chrome",
"request": "launch",
"name": "Debug React App",
"url": "http://localhost:3000",
"webRoot": "${workspaceFolder}/src",
"sourceMaps": true
}
Inicie seu servidor de desenvolvimento (npm start
), depois pressione F5
. O VS Code abre o Chrome e conecta o depurador. Defina breakpoints diretamente em seus componentes React, inspecione props e state, e percorra renderizações—tudo do VS Code.
Depurando o State de Componentes React
Coloque breakpoints dentro de hooks useEffect
, manipuladores de eventos ou funções de componentes. O painel Variables mostra valores atuais de props, state e dependências de hooks. Use o Debug Console para testar expressões contra o contexto atual do seu componente.
Recursos do Depurador Node.js no VS Code
Auto Attach para Depuração Rápida
Habilite o Auto Attach na Paleta de Comandos (Ctrl+Shift+P
> “Toggle Auto Attach”). Configure para o modo “smart”. Agora qualquer processo Node.js iniciado do terminal do VS Code conecta automaticamente ao depurador—sem necessidade de configuração.
Depurando Operações Assíncronas
A integração do depurador Node.js no VS Code se destaca na depuração assíncrona. Defina breakpoints dentro de funções async
, cadeias de Promises ou callbacks. O Call Stack mostra claramente o caminho de execução assíncrona, facilitando o rastreamento através de fluxos assíncronos complexos.
Otimizando Seu Fluxo de Trabalho de Depuração
Usando o Debug Console Efetivamente
O Debug Console não é apenas para saída—é um REPL conectado ao seu contexto de execução pausado. Teste correções, inspecione objetos ou chame funções diretamente:
// Enquanto pausado em um breakpoint:
// > user.permissions
// ['read', 'write']
// > calculateTotal(cart.items)
// 45.99
Pule Arquivos para Focar no Seu Código
Adicione isto ao seu launch.json para pular código de bibliotecas:
"skipFiles": [
"<node_internals>/**",
"node_modules/**"
]
O depurador não entrará nesses arquivos, mantendo você focado na lógica da sua aplicação.
Conclusão
As ferramentas de depuração do VS Code transformam como você entende e corrige código. Em vez de console.logs espalhados, você obtém uma visão completa do estado da sua aplicação em qualquer momento. Breakpoints condicionais e logpoints reduzem o ruído da depuração. A integração com navegador traz a depuração frontend para seu editor. O Auto Attach torna a depuração Node.js sem esforço.
Comece pequeno—substitua seu próximo console.log()
com um breakpoint. Percorra o código. Inspecione variáveis. Uma vez que você experimente a clareza das ferramentas adequadas de depuração, você vai se perguntar como conseguiu sem elas. O tempo investido em aprender esses recursos se paga imediatamente em correções de bugs mais rápidas e compreensão mais profunda do código.
Perguntas Frequentes
Sim, se source maps estiverem disponíveis. Configure sourceMaps como true na sua configuração launch.json e garanta que seu processo de build gere arquivos de source map. O VS Code mapeará automaticamente o código minificado de volta ao seu código-fonte original.
Use o tipo de configuração attach no launch.json com a porta de depuração exposta do container. Inicie seu container com a flag inspect e mapeie a porta 9229. O VS Code pode então se conectar ao processo em execução dentro do container.
Certifique-se de que seu código assíncrono realmente executa e alcança a linha do breakpoint. Verifique se os source maps estão configurados corretamente para código transpilado. Às vezes, breakpoints precisam ser definidos depois que o depurador inicia para módulos carregados dinamicamente.
Sim, crie uma configuração composta no launch.json que inicia múltiplas sessões de depuração. Isso permite depurar seu frontend React e backend Node.js em paralelo, percorrendo operações full-stack perfeitamente.
Understand every bug
Uncover frustrations, understand bugs and fix slowdowns like never before with OpenReplay — the open-source session replay tool for developers. Self-host it in minutes, and have complete control over your customer data. Check our GitHub repo and join the thousands of developers in our community.