Deno 中的 debugger

Deno 是一个用于构建现代应用程序的 JavaScript/TypeScript 运行时。它具有内置的和安全的模块加载器,可以让开发者轻松地使用其所喜欢的任何其他库。Deno 还支持调试器来帮助开发者更轻松地调试应用程序。

在本文中,我们将学习如何在 Deno 中使用调试器来调试我们的应用程序。我们将讨论以下主题:

  1. 如何启用调试模式
  2. 如何使用 VS Code 编辑器进行调试
  3. 如何使用 Chrome DevTools 进行调试

启用调试模式

Deno 可以通过在命令行中添加 --inspect 标志来启用调试模式。例如:

---- --- --------- ------

此命令将启动 app.ts 文件,并开始监听调试器连接。您可以在控制台上看到以下输出:

-------- --------- -- -----------------------------------------------------------

请注意,Deno 默认监听 127.0.0.1:9229 地址。您可以通过添加 --inspect-host=0.0.0.0 将其更改为监听所有网络接口。例如:

---- --- --------- ---------------------- ------

使用 VS Code 编辑器进行调试

VS Code 是一个流行的代码编辑器,支持内置的 JavaScript 和 TypeScript 调试器。我们可以很容易地在 VS Code 中启动调试会话以调试 Deno 应用程序。

在 VS Code 中,首先打开您的 Deno 应用程序文件。点击左侧栏中的调试按钮,然后点击配置按钮(齿轮图标)。选择 JavaScript,然后将以下配置添加到 .vscode/launch.json 文件中:

-
  ---------- --------
  ----------------- -
    -
      ------- -----------
      ------- -------
      ---------- ---------
      ------- -----
      ---------- -----
      ----------- ------------
      ------------- ----
    -
  -
-

保存文件并回到您的代码。在你想要停下来进行调试的行上放置一个断点,然后按 F5。这将启动 VS Code 编辑器并连接到您的 Deno 应用程序。

您可以在 VS Code 编辑器的调试界面中看到所有本地变量和堆栈跟踪。您还可以使用常用调试功能,如继续、暂停、单步执行、查看变量等。

使用 Chrome DevTools 进行调试

除了在 VS Code 中进行调试之外,您还可以使用 Chrome DevTools 来调试 Deno 应用程序。

在 Deno 中启用调试器并将其设置为使用 websocket 协议后,您可以在 Chrome 浏览器的地址栏中输入 chrome://inspect 并按回车键。在下面的页面中,单击“配置”按钮并确保“Discover network targets”和“Configure remote targets”选项都已选中。

单击“Add”按钮,然后输入 localhost:9229 作为 Host 和 Port。接下来,您将在 Chrome DevTools 窗口中看到您的 Deno 应用程序。

您可以使用 Chrome DevTools 的调试工具,如断点、单步执行、查看变量等,来调试您的应用程序。

结论

在本文中,我们介绍了如何在 Deno 应用程序中启用调试器,以及如何使用 VS Code 编辑器和 Chrome DevTools 进行调试。您可以使用这些调试工具来更轻松地调试您的应用程序,并快速定位和修复错误。

示例代码:

-------- ------------ -------- ------ -
  -- -- --- -- ------ --
  ------ - - ----------- - ---
-

--------------------------
---------------------------
---------------------------

在上面的示例代码中,我们定义了一个函数来计算阶乘,并调用它三次。您可以在这段代码上使用调试器来了解它的运行方式,并理解如何使用调试工具来解决错误。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/67308518eedcc8a97c922560