Categorias do Site

Domine a depuração JavaScript para apps web

Aprenda a depurar JavaScript em aplicações web usando ferramentas como Chrome DevTools e mapas de origem.

Um círculo amarelo com as letras

À medida que sua aplicação web cresce em complexidade, torna-se essencial dominar a arte da depuração. Depurar JavaScript de forma eficaz envolve mais do que apenas corrigir erros. É necessário entender como seu código funciona internamente para garantir que sua aplicação funcione sem problemas e ofereça a melhor experiência ao usuário.

debugging javascript web apps

O código minificado, que é a versão do seu código que chega aos usuários em produção, é otimizado para desempenho, mas pode ser um pesadelo para depurar. Com as ferramentas certas, a depuração de JavaScript pode se tornar muito mais fácil. Este artigo explora como usar mapas de origem para depurar código minificado e outras técnicas usando o Chrome DevTools para identificar e resolver problemas de forma eficiente em sua aplicação web.

Aplicativo de exemplo

Vamos trabalhar em um aplicativo simples que incrementa uma contagem e a registra no console. Este app demonstra como o código minificado pode tornar a depuração complicada e como os mapas de origem podem ajudar a simplificar o processo.

No arquivo package.json, adicione os pacotes webpack e execute npm i para instalá-los. Usaremos o webpack como parte do processo de build para gerar código minificado para produção:

  "devDependencies": {
    "webpack": "^5.96.1",
    "webpack-cli": "^5.1.4"
  }

Para habilitar a minificação do código, adicione um arquivo webpack.config.js com o seguinte snippet. Definir o modo como production informa ao webpack para aplicar otimizações como minificação:

 const path = require('path');
    module.exports = {
        mode: 'production',
        entry: './src/index.js',
        output: {
            path: path.resolve(__dirname, 'dist'),
            filename: 'bundle.js',
        },
    };

Agora execute npx webpack para empacotar e minificar seu código. O arquivo dist/bundle.js é gerado com o conteúdo conforme mostrado abaixo. A minificação obscurece nomes de variáveis e funções, removendo caracteres desnecessários como espaços em branco, comentários e código não utilizado, tornando o arquivo de saída menor e mais rápido de carregar.

Finalmente, execute o app e verifique o console após clicar no botão. Para pré-visualizar o app localmente, você pode usar a extensão Live Server no VS Code.

8 estratégias de depuração JavaScript para apps web

Vamos demonstrar oito métodos para ajudar a tornar a depuração de JavaScript um pouco mais fácil:

1. Mapas de origem

Os mapas de origem são arquivos que mapeiam seu código minificado de volta para o código-fonte original. Eles facilitam a depuração e ajudam a investigar problemas em produção.

2. Breakpoints

Breakpoints permitem pausar a execução do código em linhas específicas, ajudando a inspecionar variáveis, avaliar expressões e entender o fluxo do código.

3. Painel de escopo

O painel de escopo pode ser eficaz para a depuração de JavaScript, pois permite ver variáveis do código-fonte original.

4. Percorrendo o código (step into, step over, step out)

Percorrer seu código envolve navegar pelo programa de diferentes maneiras durante a depuração de JavaScript.

5. A pilha de chamadas

A pilha de chamadas mostra a sequência de chamadas de função que levaram ao ponto atual no código.

6. Ignorando scripts

Durante a depuração, pode ser desejável ignorar certos scripts durante seu fluxo de trabalho.

7. Expressões de observação

Expressões de observação permitem rastrear variáveis ou expressões específicas à medida que seu código é executado, ajudando a monitorar mudanças em tempo real.

8. Depuração de snippets de código

Para tentar corrigir o bug com a contagem total, você pode executar snippets de código no console para entender o erro lógico.

Conclusão

Este tutorial explorou a depuração de código minificado usando mapas de origem e Chrome DevTools. Gerando mapas de origem, mapeamos o código minificado de volta para sua fonte original, facilitando a depuração de nossa aplicação web. O Chrome DevTools aprimorou ainda mais o processo de depuração de JavaScript com métodos como breakpoints, percorrendo o código, expressões de observação e mais.

  • Enfrentando a Complexidade com GraphQL

    Descubra como GraphQL facilita o desenvolvimento de soluções inteligentes com IA.

    Descubra como GraphQL facilita o desenvolvimento de soluções inteligentes com IA.

    Ler notícia completa
    Banner de podcast da UX Magazine intitulado
  • UX: Emoções Além das Telas no Design

    Descubra como o design emocional transforma experiências, indo além das telas e criando conexões humanas.

    Descubra como o design emocional transforma experiências, indo além das telas e criando conexões humanas.

    Ler notícia completa
    Símbolo abstrato em tons de marrom e laranja que se assemelha a uma pessoa estilizada com braços estendidos e uma perna erguida.
  • Como usar CSS line-clamp para limitar texto

    Aprenda a usar a propriedade CSS line-clamp para limitar linhas de texto e melhorar a aparência do layout.

    Aprenda a usar a propriedade CSS line-clamp para limitar linhas de texto e melhorar a aparência do layout.

    Ler notícia completa
    Fundo gradiente em tons de laranja e violeta com o texto
  • Promise.all ainda é relevante em 2025?

    Antes das promises serem introduzidas nativamente no JavaScript, usávamos muitos callbacks para tarefas assíncronas. É comum ver callbacks sendo usados, pois muitos desenvolvedores podem ainda pensar que callbacks e promises são o mesmo, mas não são. Quando promises foram introduzidas, substituíram amplamente os callbacks, tornando a sintaxe mais compreensível. Em 2025, com async/await, Promise.allSettled, Promise.any […]

    Promise.all é crucial para tarefas assíncronas, mas novas alternativas surgem em 2025. Saiba quando usá-lo.

    Ler notícia completa
    Logotipo do JavaScript (JS) em quadrado amarelo sobre fundo com ondas suaves em tons de branco e cinza claro.
  • Equilibrando IA e UX: O Desafio do Design Humanizado

    A IA está sendo integrada aos fluxos de trabalho de design modernos, ajudando na geração de conteúdo, ideação e prototipagem. Isso aumenta a eficiência das equipes de design, aprimorando a forma como criamos, pensamos e resolvemos problemas. No entanto, a IA também traz preocupações ao processo de design, como a possível perda de foco no […]

    Descubra como manter o design UX humanizado enquanto utiliza IA para otimizar processos e aumentar a produtividade.

    Ler notícia completa
    Mão robótica branca tocando a ponta do dedo de uma mão humana contra um fundo colorido em tons de arco-íris.
  • A Revolução dos Navegadores com IA: Impactos e Futuro

    Há uma revolução silenciosa ocorrendo em um software que você usa diariamente, mas raramente pensa sobre: o navegador. Chrome, Safari, Firefox têm sido nossas janelas para a web por décadas. Agora, algo significativo está acontecendo. Uma nova espécie de navegador está surgindo: o navegador com IA. Ele não apenas muda como navegamos, mas redefine o […]

    Navegadores com IA estão mudando a web, impactando a criatividade, economia e verdade online.

    Ler notícia completa
    Tela de interface do Instacart mostrando produtos essenciais para praia à venda, como protetor solar e toalhas, com uma janela de chat com o assistente virtual aberta.
  • As 3 previsões para o futuro do design UX

    A evolução tecnológica moderniza e melhora todas as áreas da tecnologia, incluindo o design de dispositivos digitais, automação, desenvolvimento de software e design UI/UX. Essa evolução e as inovações em HCI (Interação Humano-Computador) impulsionam o design UI/UX para ajudar designers a criar produtos digitais mais amigáveis, usáveis e produtivos para todos os usuários. O design […]

    Confira as três principais previsões para a próxima era do design UX e como elas podem impactar o futuro das interfaces digitais.

    Ler notícia completa
    Ilustração em 3D de um computador desktop moderno com ícones em estilo futurista na tela, sobre fundo roxo com linhas de rede digitais.
  • A Importância do Enquadramento no Design

    No design, o enquadramento do problema está se tornando o cerne do papel humano. À medida que a IA, ou o que chamo de Programa, assume mais o trabalho de solução, nosso ofício muda para como tratamos o problema. “A IA não está substituindo designers; está substituindo designers que focam em saídas automatizáveis.” Citação e […]

    Explorando como o enquadramento de problemas redefine o papel humano no design em tempos de IA.

    Ler notícia completa
    Imagem de rabisco em preto e branco cheia de palavras e desenhos, incluindo cabeças estilizadas, uma palavra
  • Psicologia Ética no E-commerce: Facilite Compras

    A psicologia no e-commerce tem uma má reputação, muitas vezes associada a táticas de manipulação como escassez artificial e cobranças ocultas. No entanto, existe um lado positivo: a facilitação das compras sem manipulação. Trabalhando anos com e-commerce, percebi que a maioria dos problemas de conversão está em facilitar o processo de compra. Vou mostrar quatro […]

    Aprenda como remover barreiras psicológicas no e-commerce, promovendo compras éticas sem manipulação.

    Ler notícia completa
    Ilustração de um trator removendo neve da estrada, com carros vermelhos parcialmente cobertos de neve ao lado. Ambiente frio com árvores ao fundo.