PhpStorm 2021.3 Help

运行和调试 Node.js

PhpStorm 可帮助您运行和调试 Node.js 应用程序。您可以调试从 PhpStorm 启动的应用程序以及附加到已运行的应用程序。

在你开始前

确保在Settings/Preferences |上启用了Node.js插件。插件页面,标签Installed。有关详细信息,请参阅管理插件

运行 Node.js 应用程序

PhpStorm 根据 Node.js 类型的运行配置运行 Node.js 应用程序。PhpStorm 也使用此配置与 Node.js 应用程序一起启动调试器

创建 Node.js 运行/调试配置

  1. 从主菜单中,选择运行 | 编辑配置。或者,从工具栏上的列表中选择编辑配置

    打开编辑配置对话框

    在打开的Edit Configurations对话框中,单击工具栏并从列表中添加按钮选择Node.js。运行/调试配置:Node.js对话框打开。

  2. 指定要使用的 Node.js 解释器。这可以是本地 Node.js 解释器Windows Subsystem for Linux 上的 Node.js。

  3. JavaScript 文件字段中,指定启动它的应用程序的主文件的路径(例如,用于Express应用程序的bin/www)。

  4. 可选:

    • 指定自定义 Node.js 启动的节点参数。例如,您可能想要启用实验性 Node.js 功能或传递其他选项,请参阅Node.js 官方网站了解详细信息。

    • 应用程序参数字段中,指定要在启动时通过process.argv数组传递给应用程序的特定于 Node.js 的参数。

    • 要在浏览器中自动打开应用程序,请配置启动前任务。单击图标一般箭头向右以展开启动前区域,单击,然后从列表中添加按钮选择启动 Web 浏览器。在打开的对话框中,指定应用程序起始页的 URL,例如localhost:3000Express 应用程序的 URL,以及要使用的浏览器。

      启动前任务:打开浏览器
      启动前任务:打开浏览器

运行应用程序

  • 从工具栏上的Select run/debug configuration列表中选择新创建的Node.js配置,然后单击列表旁边的 。运行按钮

    使用运行/调试配置启动应用程序

    应用程序启动,运行工具窗口打开,显示应用程序输出。

如果您在应用程序中使用像morgan这样的日志记录工具,并且此工具将日志写入文件,您可以在运行工具窗口的控制台选项卡中看到这些日志。

运行 Node.js 应用程序时管理日志

  1. 如上所述创建 Node.js 运行/调试配置,然后转到“日志”选项卡。

  2. 单击要在控制台中显示添加按钮的日志文件旁边的字段,其中列出了可用的日志文件(如果有)。

  3. 在打开的“编辑日志文件别名”对话框中,键入要在日志条目列表中显示的别名并指定日志文件的位置。选择是要显示此模式涵盖的所有文件还是仅显示最后一个文件。

  4. 单击确定返回到Node.js 运行/调试配置对话框,其中新的日志文件已添加到列表中。选中它旁边的Is Active复选框。要跳过以前的内容,请选中跳过内容复选框。

  5. 可选:

    • 要启用将进程控制台输出保存到日志文件,请选中将控制台输出保存到文件复选框并指定文件位置。

    • 选择何时显示Process Console

调试 Node.js 应用程序

PhpStorm 使调试 Node.js 应用程序变得更加容易。你可以在你的 JavaScript 或 TypeScript 代码中直接设置断点,这样你就不再需要任何debuggerandconsole.log()语句了。您可以做很多事情来帮助您探索代码并了解错误在哪里。在调试工具窗口中,您可以查看调用堆栈和处于当前状态的变量,在编辑器中计算表达式,并单步执行代码。

您可以通过两种方式启动调试会话:

  • 使用Node.js运行/调试配置与您的应用程序一起启动调试器。

  • 将调试器附加到已经运行的应用程序。在这种情况下,您的应用程序已经在调试模式下运行,并且 PhpStorm 附加到正在运行的进程。

    PhpStorm 识别--inspect--inspect-brk和现在已弃用--debug的标志,因此您可以使任何应用程序可用于调试。

    要调试正在运行的应用程序,请使用Attach to Node.js/Chrome配置。

使用 PhpStorm,您还可以调试在Vagrant 盒子Docker 容器或可通过各种传输协议或 SSH 访问的远程主机上运行的 Node.js 应用程序。

在您的计算机上启动调试器和 Node.js 应用程序

启动和调试 Node.js Express 应用程序
  1. 必要时在代码中设置断点。

  2. 如上所述创建 Node.js 运行/调试配置。

    要在浏览器中自动打开应用程序,请配置启动前任务。单击图标一般箭头向右以展开启动前区域,单击,然后从列表中添加按钮选择启动 Web 浏览器。在打开的对话框中,指定应用程序起始页的 URL,例如localhost:3000Express 应用程序的 URL,以及要使用的浏览器。

    启动前任务:打开浏览器
    启动前任务:打开浏览器

  3. 从工具栏上的Select run/debug configuration列表中选择新创建的Node.js配置,然后单击列表旁边的 。调试按钮

    使用运行/调试配置启动 Node.js 调试会话

    调试工具窗口打开。

  4. 执行将触发带有断点的代码执行的步骤。例如,从应用程序的起始页面导航到浏览器中的另一个页面。

  5. 切换到 PhpStorm,现在启用了调试工具窗口的控件。继续调试会话 —逐步检查断点、在帧之间切换、即时更改值、检查暂停的程序评估表达式设置监视

调试正在运行的 Node.js 应用程序

使用 PhpStorm,您可以使用Chrome 调试协议V8 调试协议(也称为Legacy Protocol )调试已经运行的应用程序。

无论哪种情况,调试会话都是通过Attach to Node.js/Chrome配置启动的。

从内置终端或从运行或调试工具窗口启动调试器

如果应用程序以--inspector--inspect-brk标志启动,您可以从内置终端运行工具窗口或调试工具窗口启动调试会话。

从内置终端将调试器附加到正在运行的应用程序
  1. --inspect使用or--inspect-brk标志运行您的应用程序。您可以通过多种方式做到这一点,例如:

    • 打开嵌入式终端( Alt+F12),然后键入:

      node --inspect-brk <path to the starting page of your application relative to the project root>

    • package.jsonnpm工具窗口启动脚本,有关详细信息,请参阅运行和调试脚本

      在调试模式下启动应用程序:启动脚本

      根据您从列表中选择的操作,输出将显示在“运行”或“调试”工具窗口的“控制台”选项卡中。

  2. 终端运行工具窗口或调试工具窗口的控制台选项卡显示信息消息,默认端口为。要开始调试,请按住并单击链接。Debugger listening <host>:<port>9229Ctrl+Shift

    PhpStorm 使用自动生成的Attach to Node.js/Chrome配置启动调试会话。

使用 Chrome 调试协议进行调试

使用此协议调试以--inspector--inspect-brk标志启动的应用程序。此标志用于高于 6.3 的 Node.js 版本。

  1. 根据需要设置断点

  2. 选择运行 | 从主菜单编辑配置添加新配置,然后单击打开的编辑配置对话框,然后从列表中选择附加到 Node.js/Chrome 。运行/调试配置:附加到 Node.js/Chrome对话框打开。

  3. 指定运行目标应用程序的主机以及传递到的端口--inspect--inspect-brk启动 Node.js 进程以连接到的端口。从终端工具窗口或控制正在运行的应用程序的运行Debugger listening <host>:<port>工具窗口中的信息消息中复制端口号。

    从运行工具窗口或终端开始调试:信息消息
  4. Attach to区域中,选择Chrome 或 Node.js > 6.3,以 --inspect 开头

  5. 从工具栏上的Select run/debug configuration列表中选择新创建的Attach to Node.js/Chrome配置,然后单击列表旁边的。调试工具窗口打开。调试按钮

  6. 执行将在断点处触发代码的操作。对调试会话的控制权返回给 PhpStorm。

  7. 切换到 PhpStorm。在Debug工具窗口中,单步执行断点、在帧之间切换、即时更改值、检查挂起的程序评估表达式设置监视

使用 V8 调试协议进行调试

使用此协议来调试使用该--debug标志启动的应用程序。此标志用于 8 之前的 Node.js 版本。

  1. 如上所述创建Attach to Node.js/Chrome运行/调试配置,并指定传递给. 默认端口为 9229。--debug

  2. 确保使用以下参数启动要调试的应用程序:--debug=<debugger port>. 默认端口是5858.

  3. 在使用 Chrome 调试协议进行调试会话期间继续进行。

调试使用 nodemon 的 Node.js 应用程序

PhpStorm 内置调试​​器可以自动重新连接到正在运行的 Node.js 进程。这使您可以调试使用nodemon 实用程序的 Node.js 应用程序,该实用程序会在代码更新时自动重新加载您的 Node.js 进程。

要调试此类应用程序,您需要在调试模式下启动它(使用--inspector--inspect-brk标志),然后使用“附加到 Node.js/Chrome调试配置”并启用“自动重新连接”选项来连接它。

安装 nodemon

  • 在嵌入式终端( Alt+F12) 中,键入npm install --save-dev nodemonyarn add nodemon --dev安装 nodemon 作为开发依赖项。

在调试模式下使用 nodemon 启动应用程序

  • 创建并运行以下npm debug脚本:

    调试”:“nodemon --inspect <path_to_the_file_that_starts_your_application>

    有关详细信息,请参阅运行和调试脚本

  • 或者,通过inspectNode.js 运行/调试配置传递标志,如上所述

调试应用程序

  1. 根据需要在代码中设置断点

  2. 调试正在运行的 Node.js 应用程序中所述,创建一个新的附加到 Node.js/Chrome配置,然后选中自动重新连接复选框。

    不附加 Node.js 运行配置:选中自动重新连接复选框

    通常,您不需要更改配置中的端口,9229因为它是调试器正在侦听的默认端口。但是,当您在调试模式下运行应用程序时,您可以仔细检查记录的消息中使用的端口。

    在调试模式下运行 nodemon 的 Node.js 应用程序:检查端口
  3. 从工具栏上的Select run/debug configuration列表中选择新创建的Attach to Node.js/Chrome配置,然后单击列表旁边的。调试器在您在 PhpStorm 中放入代码的断点处停止。调试按钮

    现在,每次您对代码进行任何更改并保存它们Ctrl+S时,nodemon 都会自动重新加载应用程序,并且调试器将自动重新附加到重新启动的进程。

最后修改:2021 年 10 月 29 日