How to debug Deno in VSCode
The official VS Code Deno extension comes with handy debug support starting with v2.3.0.
Screencast from the PR:Fresh projects
You can already press F5 to debug the active file without launch.json
(quite useful).
To auto-generate launch.json
with a Deno
entry: Press CTRL+Shift+D (Open debug view) → "create a launch.json file" → Deno
Add Deno entry in existing launch.json
Press Add Configuration...
in opened launch.json
(see screencast above).
F5 will now trigger the currently active debug launch action.
Launch active file
To debug the currently active file in case of an already configuredlaunch.json
, change:
{
"type": "pwa-node",
"program": "${file}", // change "program" value to "${file}"
// ...
},
Create debug selection shortcut
// Inside keybindings.json
{
"key": "ctrl+alt+d",
"command": "workbench.action.debug.selectandstart",
"args": "Start debug task"
},
The shortcut is called "Debug: Select and Start Debugging"
- see also this related post.
Enable log output in Debug Console
To have log output shown in the debug console, I still needed to add "outputCapture": "std"
to the config entry. More infos:
- Where is stdout for VS Code?
- Debug output doesn't appear in debug console without "outputCapture": "std" #41600
Related
- https://code.visualstudio.com/docs/editor/debugging
- https://code.visualstudio.com/docs/nodejs/nodejs-debugging
You need to attach the debugger, as per the deno manual.
Create .vscode/launch.json
replacing <entry_point>
with your actual script and then F5.
{
"version": "0.2.0",
"configurations": [
{
"name": "Deno",
"type": "node",
"request": "launch",
"cwd": "${workspaceFolder}",
"runtimeExecutable": "deno",
"runtimeArgs": ["run", "--inspect-brk", "-A", "<entry_point>"],
"port": 9229
}
]
}
It will stop at the breakpoints you set on VS Code, tried here and it worked fine.
About the VS Code plugin:
Official support in plugin is being worked on - https://github.com/denoland/vscode_deno/issues/12