运行和调试 Node.js
最后修改时间:2023 年 10 月 11 日所需插件:
Javascript and TypeScript
, JavaScript Debugger
, Node.js
- 这些插件仅在 IntelliJ IDEA Ultimate 中可用,默认情况下启用。
IntelliJ IDEA 可帮助您运行和调试 Node.js 应用程序。您可以调试从 IntelliJ IDEA 启动的应用程序以及附加到已运行的应用程序。
在你开始之前
确保在“设置”| “启用JavaScript 和 TypeScript、JavaScript 调试器和Node.js”所需的插件。插件页面,选项卡已安装。有关更多信息,请参阅管理插件。
运行 Node.js 应用程序
IntelliJ IDEA 根据Node.js类型的运行配置运行 Node.js 应用程序。IntelliJ IDEA 还使用此配置来与 Node.js 应用程序一起启动调试器。
创建 Node.js 运行/调试配置
转到“运行”| 编辑配置。或者,从工具栏的列表中选择编辑配置。
在打开的“编辑配置”对话框中,单击工具栏上的“添加”按钮 ( ),然后从列表中选择Node.js。将打开“运行/调试配置:Node.js”对话框。
指定要使用的 Node.js 解释器。
如果您选择项目别名,IntelliJ IDEA 将自动使用Node.js页面上的节点解释器字段中的项目默认解释器。在大多数情况下,IntelliJ IDEA 会检测项目默认解释器并填充该字段本身。
您还可以选择另一个已配置的本地或远程解释器,或者单击并配置一个新解释器。
在“JavaScript 文件”字段中,指定启动它的应用程序的主文件的路径(例如,对于Express应用程序,为bin/www)。
可选:
指定自定义 Node.js 启动的Node 参数。例如,您可能想要启用实验性 Node.js 功能或传递另一个选项。更多信息请参考Node.js 官网。
在“应用程序参数”字段中,指定要在启动时通过process.argv数组传递给应用程序的 Node.js 特定参数。
要自动在浏览器中打开应用程序,请配置启动前任务。单击以展开启动前区域,单击,然后从列表中选择启动 Web 浏览器。在打开的对话框中,指定应用程序起始页的 URL(例如,
localhost:3000
对于 Express 应用程序)以及要使用的浏览器。
运行应用程序
如上所述创建运行/调试配置或修改现有配置,然后单击对话框中的“运行” 。
或者,从主工具栏上的列表中选择新创建的运行配置,然后单击。
应用程序启动,并且“运行”工具窗口打开,显示应用程序输出。
如果您在应用程序中使用像morgan这样的日志记录工具,并且该工具将日志写入文件,您可以在“运行”工具窗口的“控制台”选项卡中看到这些日志。
运行 Node.js 应用程序时管理日志
如上所述创建 Node.js 运行/调试配置,然后转到“日志”选项卡。
单击要在控制台中显示的日志文件字段旁边的,其中列出了可用的日志文件(如果有)。
在打开的“编辑日志文件别名”对话框中,键入要在日志条目列表中显示的别名,并指定日志文件的位置。选择是要显示该模式覆盖的所有文件还是仅显示最后一个文件。
单击“确定”返回到“Node.js 运行/调试配置”对话框,其中新日志文件已添加到列表中。选择旁边的“处于活动状态”复选框。要跳过以前的内容,请选中“跳过内容”复选框。
可选:
要启用将Process Console输出保存到日志文件,请选中将控制台输出保存到文件复选框并指定文件位置。
选择您希望何时显示Process Console。
调试 Node.js 应用程序
IntelliJ IDEA 使调试 Node.js 应用程序变得更加容易。您可以在 JavaScript 或 TypeScript 代码中放置断点,这样您就不再需要任何debugger
andconsole.log()
语句。您可以做很多事情来帮助您探索代码并了解错误所在。在调试工具窗口中,您可以查看调用堆栈和当前状态的变量、计算编辑器中的表达式以及单步调试代码。
您可以通过两种方式启动调试会话:
使用Node.js运行/调试配置与您的应用程序一起启动调试器。
将调试器附加到已运行的应用程序。在这种情况下,您的应用程序已经在调试模式下运行,并且 IntelliJ IDEA 附加到正在运行的进程。
IntelliJ IDEA 可识别
--inspect
、--inspect-brk
和现已弃用的--debug
标志,因此您可以使任何应用程序可访问以进行调试。要调试正在运行的应用程序,请使用Attach to Node.js/Chrome配置。
借助 IntelliJ IDEA,您还可以调试在Vagrant 盒子、Docker 容器或可通过各种传输协议或 SSH 访问的远程主机上运行的 Node.js 应用程序。
与计算机上的 Node.js 应用程序一起启动调试器
必要时在代码中设置断点。
如上所述创建 Node.js 运行/调试配置。
要自动在浏览器中打开应用程序,请配置启动前任务。单击以展开启动前区域,单击,然后从列表中选择启动 Web 浏览器。在打开的对话框中,指定应用程序起始页的 URL(例如,
localhost:3000
对于 Express 应用程序)以及要使用的浏览器。提示
如有必要,IntelliJ IDEA 可以生成JavaScript 调试配置并与Node.js配置一起自动启动它,如调试服务器端和客户端代码中所述。
从工具栏上的“选择运行/调试配置”列表中选择新创建的Node.js配置,然后单击列表旁边的“调试”按钮 ( )。
调试工具窗口打开。
执行将触发带有断点的代码执行的步骤。例如,从应用程序的起始页面导航到浏览器中的另一个页面。
切换到 IntelliJ IDEA,其中调试工具窗口的控件现已启用。继续进行调试会话 —单步执行断点、在帧之间切换、即时更改值、检查挂起的程序、计算表达式并设置监视。
调试正在运行的 Node.js 应用程序
借助 IntelliJ IDEA,您可以使用Chrome 调试协议或V8 调试协议(也称为旧版协议)来调试已运行的应用程序。
无论哪种情况,调试会话都是通过Attach to Node.js/Chrome配置启动的。
从内置终端或从运行或调试工具窗口启动调试器
如果应用程序是使用--inspect
或--inspect-brk
标志启动的,则可以从内置Terminal、“运行”工具窗口或“调试”工具窗口启动调试会话。
使用
--inspect
or--inspect-brk
标志运行您的应用程序。您可以通过多种方式做到这一点,例如:打开嵌入式终端( ) 并输入:AltF12
node --inspect-brk <path to the starting page of your application relative to the project root>
从package.json或npm工具窗口启动脚本。有关更多信息,请参阅运行和调试脚本。
根据您从列表中选择的操作,输出将显示在“运行”或“调试”工具窗口的“控制台”选项卡中。
终端、运行工具窗口或调试工具窗口的控制台选项卡显示一条信息消息,默认端口为。要开始调试,请按住并单击链接。
Debugger listening <host>:<port>
9229
CtrlShiftIntelliJ IDEA 使用自动生成的Attach to Node.js/Chrome配置启动调试会话。
笔记
或者,从消息中复制端口号
Debugger listening <host>:<port>
,稍后将其粘贴到Attach to Node.js/Chrome 配置中。
使用 Chrome 调试协议进行调试
使用此协议来调试以--inspect
or--inspect-brk
标志开头的应用程序。此标志用于 6.3 之后的 Node.js 版本。
根据需要设置断点。
选择运行 | 从主菜单中编辑配置,然后单击打开的编辑配置对话框,并从列表中选择附加到 Node.js/Chrome 。将打开“运行/调试配置:附加到 Node.js/Chrome”对话框。
指定目标应用程序运行的主机以及传递给
--inspect
或--inspect-brk
启动 Node.js 进程时连接的端口。从终端工具窗口或控制正在运行的应用程序的运行工具窗口Debugger listening <host>:<port>
中的信息消息中复制端口号。警告
确保此端口与运行应用程序的端口不同。默认端口为 9229。
提示
可选:在本地文件的远程 URL区域中指定项目文件夹的远程路径。如果正在运行的应用程序的根文件夹与您的 IntelliJ IDEA 项目根文件夹的名称不同,这会很有帮助。
在“附加到”区域中,选择以 --inspect 开头的 Chrome 或 Node.js > 6.3。
从工具栏上的选择运行/调试配置列表中选择新创建的Attach to Node.js/Chrome配置,然后单击列表旁边的调试按钮 ( )。调试工具窗口打开。
执行将在断点处触发代码的操作。对调试会话的控制返回到 IntelliJ IDEA。
切换到 IntelliJ IDEA。在“调试”工具窗口中,单步执行断点、在帧之间切换、即时更改值、检查挂起的程序、 计算表达式并 设置监视。
使用 V8 调试协议进行调试
使用此协议来调试以该--debug
标志启动的应用程序。此标志用于 8 之前的 Node.js 版本。
如上所述创建Attach to Node.js/Chrome run/debug 配置,并指定传递给 的主机和端口。默认端口为 9229。
--debug
确保使用以下参数启动要调试的应用程序:
--debug=<debugger port>
。默认端口是5858
.
调试使用 nodemon 的 Node.js 应用程序
提示
有关更多信息,请参阅运行和调试脚本。
IntelliJ IDEA 内置调试器可以自动重新连接到正在运行的 Node.js 进程。这使您可以调试使用nodemon 实用程序的 Node.js 应用程序,该实用程序会在代码更新时自动重新加载您的 Node.js 进程。
要调试此类应用程序,您需要在调试模式下启动它(使用--inspect
或--inspect-brk
标志),然后使用附加到 Node.js/Chrome调试配置并打开自动重新连接选项来连接到它。
安装nodemon
在嵌入式终端( ) 中,键入或以安装 nodemon 作为开发依赖项。AltF12
npm install --save-dev nodemon
yarn add nodemon --dev
在调试模式下使用nodemon启动应用程序
调试应用程序
根据需要在代码中设置断点。
按照调试正在运行的 Node.js 应用程序中所述创建新的附加到 Node.js/Chrome配置,并选中自动重新连接复选框。
通常,您不需要更改配置中的端口
9229
,因为它是调试器侦听的默认端口。但是,您可以仔细检查在调试模式下运行应用程序时记录的消息中使用的端口。从工具栏上的选择运行/调试配置列表中选择新创建的Attach to Node.js/Chrome配置,然后单击列表旁边的调试按钮 ( )。调试器在您在 IntelliJ IDEA 中放入代码的断点处停止。
现在,每次对代码进行任何更改并保存它们时,nodemon 都会自动重新加载应用程序,并且调试器将自动重新附加到重新启动的进程。Ctrl0S
感谢您的反馈意见!