在 Deno 中如何进行代码调试

阅读时长 4 min read

在 Deno 中如何进行代码调试

Deno 是一个全新的服务器端 JavaScript 运行时环境,它是由 Node.js 的创始人 Ryan Dahl 发起的项目,旨在解决 Node.js 中的一些问题。和 Node.js 类似,Deno 也支持调试,本文将介绍在 Deno 中如何进行代码调试。

一、Deno 的调试模式

Deno 对调试提供支持,它内置了 V8 Inspector,这是一个用于调试 Node.js 和 Chromium 的调试器,你可以使用它来调试你的 Deno 代码。在启动 Deno 时,你可以使用 --inspect 或 --inspect-brk 参数来开启调试器。

  1. --inspect 参数

当你使用 --inspect 参数时,Deno 将监听一个特定的端口,并等待调试器连接。调试器连接后,你可以在命令行中进行调试。

下面是如何使用 --inspect 参数来启动 Deno:

你可以使用 Chrome 开发者工具来连接调试器,步骤如下:

  1. 在 Chrome 中打开一个新的标签页,输入 chrome://inspect,并按下回车键。

  2. 点击“Open dedicated DevTools for Node”链接。

  3. 在 DevTools 中,点击“Add Connection”按钮,输入“localhost”和 Deno 的调试端口(默认是 9229),点击“Add”按钮。

  4. 点击“inspect”链接来开始调试你的 Deno 代码。

  5. --inspect-brk 参数

当你使用 --inspect-brk 参数时,Deno 将在第一行代码暂停等待调试器连接。这对于调试启动阶段的代码很有用。

下面是如何使用 --inspect-brk 参数来启动 Deno:

你可以使用 Chrome 开发者工具来连接调试器,步骤如下:

  1. 在 Chrome 中打开一个新的标签页,输入 chrome://inspect,并按下回车键。
  2. 点击“Open dedicated DevTools for Node”链接。
  3. 在 DevTools 中,点击“Add Connection”按钮,输入“localhost”和 Deno 的调试端口(默认是 9229),点击“Add”按钮。
  4. 点击“inspect”链接来开始调试你的 Deno 代码。

二、在 VS Code 中调试 Deno 代码

除了使用 Chrome 开发者工具来调试,你也可以使用 VS Code 来进行调试。VS Code 提供了一个插件,叫做 vscode-deno,可以在 VS Code 中直接调试 Deno 代码。

  1. 安装插件

在 VS Code 中安装 vscode-deno 插件,具体步骤如下:

  1. 点击左侧菜单栏上的 Extensions 按钮。

  2. 在搜索框中输入“vscode-deno”,找到插件并点击安装按钮。

  3. 安装完成后,点击 Reload 按钮以重启 VS Code。

  4. 配置调试环境

在 VS Code 中配置 Deno 的调试环境,具体步骤如下:

  1. 点击左侧菜单栏上的 Debug 按钮。
  2. 点击“create a launch.json file”链接以生成 launch.json 文件。
  3. 将以下内容添加到 launch.json 文件中:
-- -------------------- ---- -------
-
    ---------- --------
    ----------------- -
        -
            ------- -------
            ---------- ---------
            ------- ---------
            ---------- ----------
            ------ ---------------------
            -------------- -
                ---------------
            --
            ------- ----
        -
    -
-

配置完成后,你就可以在 VS Code 中直接调试 Deno 代码了。

三、结语

本文介绍了在 Deno 中进行代码调试的方法,包括使用命令行工具和使用 VS Code。请注意,在进行代码调试时,务必保证你的代码是可调试的,不要直接在生产环境中使用调试器。谨慎使用,避免引入潜在的问题。

Source: FunTeaLearn,Please indicate the source for reprints https://funteas.com/post/67d7f089a941bf7134e305d8

Feed
back