如何在VSCode中调试Deno

30

我们该如何配置 .vscode/launch.json 来调试 Deno 项目?

configurations 中,VSCode 提供的 IntelliSense 并没有提供针对 Deno 的选项。是否有相应的扩展可以使用?

5个回答

33

根据Deno手册,您需要连接调试器。

创建.vscode/launch.json文件,并将<entry_point>替换为实际脚本,然后按下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
        }
    ]
}

它将在您在VS Code上设置的断点处停止,已在此处尝试并运行良好。

关于VS Code插件:

插件中的官方支持正在开发中- https://github.com/denoland/vscode_deno/issues/12


19
已点赞。我还需要添加"outputCapture": "std"才能在调试控制台中查看日志。 - ford04
3
在 GitHub 和 Google 上花了数小时后,这个问题在一秒钟内就得到了解决。注意:必须添加 "outputCapture": "std" 以捕获控制台日志。谢谢 @ford04。 - Radical Edward
Deno 手册的链接似乎已经失效了。 - TrentVB
3
这个配置下无法进行调试。你还需要在设置中将"debug.javascript.usePreview": false设为false,原因是https://github.com/denoland/vscode_deno/issues/12#issuecomment-656406826。 - phil294
1
这对我很有效,但我需要将 "port" 更改为 "attachSimplePort" 如其他地方所述 - adiabatic
显示剩余3条评论

13

官方VS Code Deno扩展v2.3.0开始提供便捷的调试支持

enter image description here

新项目

您已经可以按下F5键调试活动文件,无需launch.json文件(非常有用)。

要使用Deno条目自动生成launch.json文件:按下CTRL+Shift+D(打开调试视图)→“创建一个launch.json文件”→ Deno

在现有的launch.json中添加Deno条目

在打开的launch.json中按下添加配置...(请参见上面的屏幕录制)。

F5现在将触发当前活动的调试启动操作。

启动活动文件

launch.json
{
  "type": "pwa-node",
  "program": "${file}", // change "program" value to "${file}"
  // ...
},

创建调试选择快捷方式

// Inside keybindings.json
{
    "key": "ctrl+alt+d",
    "command": "workbench.action.debug.selectandstart",
    "args": "Start debug task"
},

这个快捷方式称为"调试:选择并启动调试" - 请参见此相关帖子

在调试控制台中启用日志输出

要在调试控制台中显示日志输出,我仍需要将"outputCapture": "std"添加到配置条目中。更多信息:

相关


1
Deno启动配置模板似乎又被(暂时?)移除了,现在需要手动插入。 - phil294
1
这需要点赞。这个答案让我重新启动并且F5确实可以直接使用。之后,我像ford04建议的那样自动生成了launch.json,并添加了outputCapture,整个过程都起作用了。 - Gerben Rampaart

10

要调试当前文件,您可以使用以下配置 :)

"outputCapture": "std" 允许Deno将输出打印到VS代码控制台

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Deno",
            "type": "node",
            "request": "launch",
            "cwd": "${workspaceFolder}",
            "runtimeExecutable": "deno",
            "runtimeArgs": ["run", "--inspect-brk", "-A", "${fileBasename}"],
            "outputCapture": "std",
            "port": 9229
        }
    ]
}

P.S. 刚刚添加到 Evandro Pomatti 的回答中


那相当方便 - Evandro Pomatti

0
安装官方的Deno扩展,然后通过打开“运行和调试”面板,选择创建一个“launch.json”文件,并从调试器选项中选择Deno选项来生成配置。

0
我不得不用attachSimplePort替换port
{
    "name": "Deno",
    "type": "node",
    "request": "launch",
    "cwd": "${workspaceFolder}",
    "runtimeExecutable": "deno",
    "runtimeArgs": ["run", "--inspect-brk", "-A", "${fileBasename}"],
    "outputCapture": "std",
    "attachSimplePort": 9229
},

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接