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