Happy Hacking

moon indicating dark mode
sun indicating light mode

How to debug NodeJS apps in VSCode

April 24, 2018

Debugging Javascript application can be quite tedious - especially if you add a transpiler like Typescript to the mix. But instead of logging everything to the console - its time to use a real debugger.

With the latest release of Visual Studio Code, a new feature called Auto Attach was introduced. If enabled, the debugger automatically attaches to the Node process that has been launched from the terminal in VSCode. No configuration required.

Using this feature in your Typescript app is actually pretty simple. If you are already using ts-node that's perfect. Instead of starting your app like ts-node script.ts you run node --inspect-brk -r ts-node/register script.ts from your terminal in VSCode. Now the VSCode will recognize the new node process and attach the debugger automatically. Of course you can encapsulate this command in a npm script like "start:dev": "node --inspect-brk -r ts-node/register script.ts. Just make sure you are using the integrated terminal.

This Auto Attach feature also works if you are using Nodemon to restart your app after one of your Typescript files has been changed. In your nodemon.json change your exec property to look like "exec": "node --inspect-brk -r ts-node/register src/main.ts"

Happy Hacking.