[大阪/横滨/德岛] 寻找基础设施/服务器端工程师!

[大阪/横滨/德岛] 寻找基础设施/服务器端工程师!

【超过500家企业部署】AWS搭建、运维、监控服务

【超过500家企业部署】AWS搭建、运维、监控服务

【CentOS的后继者】AlmaLinux OS服务器搭建/迁移服务

【CentOS的后继者】AlmaLinux OS服务器搭建/迁移服务

[仅适用于 WordPress] 云服务器“Web Speed”

[仅适用于 WordPress] 云服务器“Web Speed”

[便宜]网站安全自动诊断“快速扫描仪”

[便宜]网站安全自动诊断“快速扫描仪”

[预约系统开发] EDISONE定制开发服务

[预约系统开发] EDISONE定制开发服务

[注册100个URL 0日元] 网站监控服务“Appmill”

[注册100个URL 0日元] 网站监控服务“Appmill”

【兼容200多个国家】全球eSIM“超越SIM”

【兼容200多个国家】全球eSIM“超越SIM”

[如果您在中国旅行、出差或驻扎]中国SIM服务“Choco SIM”

[如果您在中国旅行、出差或驻扎]中国SIM服务“Choco SIM”

【全球专属服务】Beyond北美及中国MSP

【全球专属服务】Beyond北美及中国MSP

[YouTube]超越官方频道“美由丸频道”

[YouTube]超越官方频道“美由丸频道”

使用 Visual Studio Code 调试 Node.js

你好。
我是Mandai,负责Wild 开发团队。

开发 Node.js 时使用什么类型的编辑器?
另一方面,如果你问我用什么,我会毫不犹豫地推荐 Visual Studio Code (VSCode),这是一个非常强大的调试工具!

这次,我将介绍如何使用VSCode这个极其强大的调试工具。

 

安装nodemon进行调试

说到 Node.js,当我想到一个在修改源时自动重新启动的工具时,我过去记得它是“node-dev”,但最近似乎正在使用nodemon。

VSCode官方网站好像也使用Nodemon,所以我想跟风,在这里使用Nodemon。

要使用nodemon,你只需要使用npm安装它,所以非常简单。
是不是全局安装比较好?我就是这么想的,所以我用“-g”选项安装了它。

# 如有必要,sudo npm install nodemon -g

 

目前前期准备工作已经完成。

 

launch.json 设置

配置 launch.json 以设置启动选项。
如果从调试菜单中选择“打开配置”,将自动创建 launch.json。
已经做到了一定程度,所以你要做的就是在这里那里做一些修改。

按数字顺序单击下面的图像会将项目添加到 launch.json。

launch.json配置添加步骤

在 launch.json 屏幕的右下角,您将看到一个名为“Add Item”的按钮,因此请按它。
将添加新的设置项并且光标将移动,因此向下滚动选项,您将看到一个名为“Node.js:nodemon setup”的项目,因此选择此项。

从这里,更改设置以适合您的个人环境。

我将列出一些最常见且经常修改的内容。

 

程序

程序键指定将作为您正在开发的 Node.js 应用程序的入口点的文件。

“${workspaceRoot}”将替换为在 VSCode 中打开的文件夹的路径,因此请根据需要更改那里的路径。

无论下面描述的“cwd”项如何,都需要包含 ${workspaceRoot} 的目录路径。

 

西德

如果设置了此项,则在启动 Node.js 应用程序之前将更改工作目录。

有点复杂,但是不用设置cwd就可以启动应用程序(因为你用程序键指定了绝对路径),但是如果在应用程序内部使用相对路径,则执行程序的当前目录自为相对路径如果选择从开始,则会出现“文件不存在”错误。

 

例子
  • 在 VSCode 中打开的目录
    • /路径/到/hoge
  • app.js的绝对路径
    • /path/to/hoge/node/app.js

在上述情况下,program和cwd键的值如下。

  • 程序
    • ${workspaceRoot}/node/app.js
  • 西德
    • ${workspaceRoot}/节点

 

参数

启动 Node.js 应用程序时,将必要的参数定义为 args 键中的数组。

由于未以键/值格式指定,因此该值将按原样作为参数进行扩展。

“args”:[“-hoge”,“--fuga = 1”,“-a 1”,“--端口8080”,“--socket”,“/path/to/socket”]

 

如果您使用带有上述 args 键的 launch.json 启动 Node.js 应用程序,则将使用以下命令启动该应用程序。

nodemon --inspect=28106 --debug-brk app.js -hoge --fuga=1 "-a 1" "--端口 8080" --socket /path/to/socket

 

您需要注意的是包含空格的值,并且您编写它们的方式将根据您是要传递字符串“-a 1”还是为-a选项指定1而改变。

看起来可能不对,但是如果以“-a 1”的形式指定,它将被转换为一个4字符字符串的参数,所以当为-a选项指定1时如何指定args键是

“args”:[“-a”,“1”]

 

您需要单独指定这些值。
因此,args 键的排列顺序很重要。

 

运行时参数

指定在runtimeExecutable 中指定的程序参数。
默认情况下,runtimeExecutable 是node,但您可以从各种选项中进行选择,例如nodemon 或gulp。

 

环境

指定要在运行时指定的环境变量。

在 Linux 上,这是传递给 env 命令的值,在 Windows 上,这是传递给 $env 的值。

很难区分哪个 env、runtimeArgs 和 args 是哪个,但如果你在 Linux 上运行它,它将如下所示。

env [env] 节点 [runtimeArgs] app.js [args]

 

它就像一个数学公式,所以可能更容易记住。

 

从 VSCode 启动应用程序

设置 launch.json 后,尝试从 VSCode 启动它。

启动过程很简单,只需如下图所示单击即可。

调试启动程序

如果成功启动,请尝试使用浏览器访问该应用程序。
您应该能够像以前一样访问它。

您可以通过单击编辑器中行号的左侧来设置断点,因此如果您停在可疑部分,您还可以检查该点变量中包含的值。

调试

当程序被中断时,在调试过程中会出现如下所示的一个条,您可以按它来单步执行程序。

调试工具

之后,充分利用左边可以显示定义的变量和对象的监视表达式、显示断点处理之前经过的函数的调用堆栈以及设置的断点列表,让我们不断提高调试效率!

 

不仅仅调试 Node.js

VSCode 的调试工具似乎不仅可以调试 Node.js,还可以调试 Python。
预设了 django、flask 等主要框架的模板,因此您可以以与 Node.js 应用程序相同的体验进行调试。

 

概括

您如何看待 VSCode 这个极其易用的调试工具?
我的印象是VSCode继承了Visual Studio最好的特性,比如IntelliSense的易用性和优秀的调试工具。

 
就是这样。

如果您觉得这篇文章有帮助,请点赞!
0
加载中...
0 票,平均:0.00 / 10
9,744
X Facebook 哈特纳书签 口袋
[2025.6.30 Amazon Linux 2 支持结束] Amazon Linux 服务器迁移解决方案

[2025.6.30 Amazon Linux 2 支持结束] Amazon Linux 服务器迁移解决方案

写这篇文章的人

关于作者

万代洋一

我的主要工作是为社交游戏开发 Web API,但我也很幸运能够做很多其他工作,包括营销。
此外,我在 Beyond 中的肖像权被视为 CC0。