Deno 是一个新兴的 JavaScript 和 TypeScript 运行时环境,它提供了许多有用的功能,如安全性、内置模块、单文件执行等等。在 Deno 中调试 JavaScript 代码也是非常重要的,本文将介绍如何在 Deno 中进行调试,并提供一些有用的技巧和示例代码。
调试工具
Deno 中有两种主要的调试工具:Deno.inspect() 和 Deno.debug()。
Deno.inspect() 是一个内置的调试工具,它可以输出 JavaScript 对象的详细信息。我们可以通过将对象作为参数传递给 Deno.inspect(),来查看该对象的属性、方法和值。例如:
const obj = { name: "Alice", age: 30 };
console.log(Deno.inspect(obj));输出结果如下:
{ name: "Alice", age: 30 }Deno.debug() 是一个调试器,它可以让我们在代码中设置断点,以便在运行时暂停代码执行。我们可以使用 Deno.debug() 来检查变量的值、跟踪代码的执行路径和调试错误。例如:
function add(a, b) {
const result = a + b;
Deno.debug({ result });
return result;
}
add(2, 3);在运行代码时,当 Deno.debug() 被调用时,代码会停止执行并进入调试模式。我们可以使用命令行调试工具 deno debug 来调试代码。
调试技巧
除了上述的调试工具,还有许多其他的调试技巧可以帮助我们更好地调试 JavaScript 代码。
使用 console.log()
在 JavaScript 中,最简单的调试方法就是使用 console.log()。我们可以在代码中插入 console.log() 来打印变量的值、跟踪代码的执行路径和调试错误。例如:
function add(a, b) {
const result = a + b;
console.log({ result });
return result;
}
add(2, 3);使用 debugger
除了 Deno.debug(),JavaScript 还有一个内置的调试器 debugger。我们可以在代码中插入 debugger 来设置断点和检查变量的值。例如:
function add(a, b) {
const result = a + b;
debugger;
return result;
}
add(2, 3);在运行代码时,当 debugger 被执行时,代码会停止执行并进入调试模式。我们可以在浏览器的开发者工具中调试 JavaScript 代码。
使用 VS Code 调试器
VS Code 是一款流行的代码编辑器,它内置了一个强大的调试器。我们可以使用 VS Code 调试器来调试 Deno 中的 JavaScript 代码。具体操作如下:
- 在 VS Code 中打开项目文件夹。
- 在 VS Code 中打开
launch.json文件。 - 在
launch.json文件中添加 Deno 调试配置,例如:
// www.javascriptcn.com code example
{
"type": "pwa-node",
"name": "Deno",
"request": "launch",
"cwd": "${workspaceFolder}",
"runtimeExecutable": "deno",
"runtimeArgs": ["run", "--inspect-brk", "app.js"],
"port": 9229
}- 在代码中设置断点。
- 在 VS Code 中点击调试按钮,开始调试代码。
示例代码
下面是一个使用 Deno.debug() 调试 JavaScript 代码的示例:
function add(a, b) {
const result = a + b;
Deno.debug({ result });
return result;
}
add(2, 3);在运行代码时,当 Deno.debug() 被调用时,代码会停止执行并进入调试模式。我们可以使用命令行调试工具 deno debug 来调试代码。例如:
// www.javascriptcn.com code example
$ deno debug app.js
Debugger listening on ws://127.0.0.1:9229/ws/4c4d4f4c-6e4d-4d4c-4d4c-4d4c4d4c4d4c
To start debugging, open the following URL in Chrome:
chrome-devtools://devtools/bundled/inspector.html?experiments=true&v8only=true&ws=127.0.0.1:9229/ws/4c4d4f4c-6e4d-4d4c-4d4c-4d4c4d4c4d4c
Break on start in app.js:1
> 1 function add(a, b) {
2 const result = a + b;
3 Deno.debug({ result });
debug>在调试模式下,我们可以使用 c 命令继续执行代码,使用 n 命令执行下一行代码,使用 s 命令进入函数内部,使用 o 命令跳出函数内部,使用 repl 命令进入 REPL 模式,使用 q 命令退出调试模式等等。
Source: FunTeaLearn,Please indicate the source for reprints https://funteas.com/post/67da284ba941bf71341e3f26