Recentemente comecei a testar o VS Code, depois de alguns anos usando o Sublime Text (leia como abrir sublime no terminal (Linux) sem usar a sessão do terminal) e descobri que é possível fazer o debug de NodeJS do VS Code.
No momento que escrevi isso estou usando a V 1.29.1 do editor no Linux (Ubuntu), talvez algo possa ser um pouco diferente em outras versões ou plataformas.
O VS Code tem um botão de Debug na sidebar esquerda (de ícones), também pode ser ativado pelo menu View -> Debug ou ainda pelo atalho CTRL+SHIFT+D.
Neste debugger é possível fazer o start de uma aplicação/script em NodeJS diretamente pelo VS Code. Para isso antes é necessário criar um arquivo de configuração, clicando em Add Configuration (imagem abaixo).
Você define que é NodeJS e que a configuração será de Launch e o VS Code irá criar um arquivo launch.json na raiz do seu workspace, com o arquivo padrão. Você pode ter uma série de comandos diferentes para o debug, no mesmo arquivo – cada um representará uma opção no select de debug.
O editor disponibiliza vários modelos prontos de configurações, a Launch é a necessária para rodar e debugar um arquivo.
Com ela pronta, se você clicar em debugar (o ícone de “play” do printscreen acima) o VS Code irá executar seu arquivo e, por padrão, exibir no console interno do editor (debug console) qualquer resultado.
Ele também irá respeitar todos os breaking points que você marcar no arquivo. Você também tem uma aba de variáveis (na sidebar esquera do debug) que exibe tudo o que está disponível enquanto seu código roda.
Também é possível você acoplar o debugger do VS Code a um processo em NodeJS que já está rodando em sua máquina, para isso é necessário adicionar a configuração de “attach” no arquivo de config.
O vídeo abaixo (em inglês) explica um pouco dos processos básicos de debug com o editor.
Tabém vale a pena conferir a documentação sobre debug de NodeJS com o VS Code, lá tem detalhamento sobre as ocnfigurações possíveis para o Launch, protocolos utilizados, qual terminal utilizar (o do próprio VS Code ou externo), etc.