运行与调试 Node.js
WebStorm 可帮助您运行并调试 Node.js 应用。 您可以调试从 WebStorm 启动的应用,也可以附加到已运行的应用进行调试。
开始之前
请确保在 设置 | 插件 页的 已安装 选项卡中启用必需的插件 Node.js 和 JavaScript Debugger。 有关更多信息,请参阅 插件管理。
运行 Node.js 应用
WebStorm 根据类型为 Node.js 的运行配置运行 Node.js 应用。 WebStorm 还使用该配置来 在启动 Node.js 应用的同时启动调试器。
创建 Node.js 运行/调试配置
转到 。 或者,从工具栏的 运行 组件选择 编辑配置。

在打开的 编辑配置 对话框中,点击工具栏上的 添加 按钮(
),然后从列表中选择 Node.js。 将打开 运行/调试配置:Node.js 对话框。
指定要使用的 Node.js 解释器。
如果选择 项目 别名,WebStorm 会自动使用 Node 解释器 字段上项目默认的解释器,此字段位于 Node.js 页面。 在大多数情况下,WebStorm 会检测项目默认解释器并自动填写该字段。
您也可以选择其他已配置的本地或远程解释器,或点击
配置新的解释器。
有关更多信息,请参阅 配置远程 Node.js 解释器、 配置本地 Node.js 解释器 和 在 Windows Subsystem for Linux 上使用 Node.js。
在 文件 字段中,指定启动应用的主文件路径(例如 bin/www ,用于 Express 应用)。
可选:
指定自定义 Node.js 启动过程的 节点形参(O)。 例如,您可能希望启用某个实验性 Node.js 功能或传递其他选项。 有关更多信息,请参阅 Node.js 官方网站。
在 应用程序形参(C) 字段中,指定启动应用时通过 process.argv 数组传递的 Node.js 专属参数。
如需自动在浏览器中打开应用,请配置启动前任务。 单击
展开 执行前(B) 区域,单击
,然后从列表中选择 启动Web 浏览器。 在打开的对话框中,指定应用起始页面的 URL,例如 Express 应用使用
localhost:3000,并选择要使用的浏览器。
运行应用
如上所述创建运行/调试配置或修改现有配置,然后在对话框中单击 运行。
或者,在主工具栏的列表中选择新创建的运行配置,然后单击
。

应用启动后,将打开 运行工具窗口 ,显示应用输出。
如果您的应用中使用了如 morgan 这类日志工具,并且该工具将日志记录到文件中,您可以在 控制台 选项卡中的 运行 工具窗口查看这些日志。
运行 Node.js 应用时管理日志
如上所述 创建 Node.js 运行/调试配置,并转到 日志 选项卡。
单击
,位于列出可用日志文件(如有)信息的 将显示在控制台中的日志文件 字段旁。
在打开的 编辑日志文件别名 对话框中,输入要在日志项列表中显示的别名,并指定日志文件的位置。 选择是否要显示此模式所匹配的所有文件,还是仅显示最后一个文件。
单击 确定 返回 Node.js 运行/调试配置 对话框,新的日志文件已添加到列表中。 选择其旁边的 是否激活 复选框。 如需跳过之前的内容,请选择 跳过内容 复选框。
可选:
如需启用将 进程控制台 输出保存为日志文件,请选择 将控制台输出保存到文件 复选框并指定文件位置。
选择何时显示 进程控制台。
调试 Node.js 应用
WebStorm 让调试 Node.js 应用更加轻松。 您可以直接在 JavaScript 或 TypeScript 代码中设置断点,因此无需再编写 debugger 和 console.log() 语句。 您可以执行许多操作来帮助探索代码并理解错误所在。 在 调试 工具窗口中,您可以查看调用堆栈以及变量的当前状态,在编辑器中计算表达式,并逐步执行代码。
您可以通过以下两种方式之一启动调试会话:
使用 Node.js 运行/调试配置,与应用一起启动调试器。
将调试器附加到正在运行的应用。 在此情况下,您的应用已在 调试模式 下运行,WebStorm 将附加到正在运行的进程。
WebStorm 支持识别
--inspect、--inspect-brk以及已弃用的--debug标志,因此可以使任何应用都可用于调试。如需调试正在运行的应用,请使用 Attach to Node.js/Chrome 配置。
使用 WebStorm,您还可以调试运行在 Vagrant 盒、 Docker 容器 或通过 多种传输协议 或 SSH 可访问的远程主机上的 Node.js 应用。
在计算机上启动调试器并运行 Node.js 应用

根据需要在代码中设置 断点。
如上所述 创建 Node.js 运行/调试配置。
如需自动在浏览器中打开应用,请配置启动前任务。 单击
展开 执行前(B) 区域,单击
,然后从列表中选择 启动Web 浏览器。 在打开的对话框中,指定应用起始页面的 URL,例如 Express 应用使用
localhost:3000,并选择要使用的浏览器。
在工具栏的 运行 小部件列表中,选择新创建的 Node.js 配置,然后单击其旁边的
。

调试工具窗口 打开。
执行将触发带有断点代码执行的步骤。 例如,从应用的起始页面导航至浏览器中的另一个页面。
切换至 WebStorm,此时 调试 工具窗口的控件已启用。 继续调试会话 — 单步执行断点 、在帧之间切换、即时更改值、 检查已挂起的程序、 计算表达式以及 设置监视。
调试正在运行的 Node.js 应用
使用 WebStorm,您可以调试已在开发模式下运行的应用程序,也就是说该应用程序是使用 --inspect 或 --inspect -brk 标志启动的。 调试会话是通过一个 Attach to Node.js/Chrome 配置启动的,并使用 Chrome Debugging Protocol。
从“运行”或“调试”工具窗口或内置终端启动调试器
如果应用程序是使用 --inspect 或 --inspect-brk 标志启动的,您可以从内置的 终端、 运行 工具窗口或 调试 工具窗口启动调试会话。

根据需要设置 断点。
使用
--inspect或--inspect-brk标志运行您的应用程序。 您可以通过多种方式完成此操作,例如:在 package.json 中,点击带有
--inspect或--inspect -brk标志的脚本旁边的图标,然后选择 运行 '<script name>'。 有关详细信息,请参阅 运行和调试脚本。

打开嵌入式 终端 (Alt+F12 ),然后输入:
node --inspect-brk <path to the starting page of your application relative to the project root>
终端、 运行 工具窗口或 调试 工具窗口的 控制台 选项卡显示一条信息消息
Debugger listening <host>:<port>,默认端口为9229。 要开始调试,请按住 Ctrl+Shift 并点击链接。WebStorm 使用自动生成的 Attach to Node.js/Chrome 配置启动调试会话。 执行将触发含断点代码的操作。 例如,从应用程序的起始页面导航到浏览器中的另一个页面。
通过运行/调试配置附加调试器到正在运行的应用
使用
--inspect或--inspect-brk标志运行您的应用程序, 如上所述。根据需要设置 断点。
在主菜单中转到 ,然后在打开的 编辑配置 对话框中点击
,并从列表中选择 附加到 Node.js/Chrome。

运行/调试配置:Attach to Node.js/Chrome 对话框将打开。
请指定目标应用程序运行所在的主机,以及启动 Node.js 进程时传递给
--inspect或--inspect-brk的端口。
从 终端 工具窗口或控制运行中应用程序的 运行工具窗口 中的信息消息
Debugger listening <host>:<port>中复制端口号。
在工具栏的 运行 小组件列表中,选择新建的 附加到 Node.js/Chrome 配置,并点击其旁边的
。 “调试”工具窗口将打开。
执行将触发断点位置代码的操作。 调试会话的控制权返回至 WebStorm。
切换至 WebStorm。 在 调试 工具窗口中, 单步执行断点 、在帧之间切换、即时更改值、 检查已挂起的程序、 计算表达式 ,以及 设置监视。
调试使用 nodemon 的 Node.js 应用
WebStorm 内置调试器可自动重新连接至正在运行的 Node.js 进程。 这样,您就可以调试使用 nodemon 工具 的 Node.js 应用程序,该工具会在代码更新时自动重新加载 Node.js 进程。
要调试此类应用程序,您需要以 调试 模式启动它(使用 --inspect 或 --inspect-brk 标志),然后使用启用了 自动重新连接 选项的 Attach to a Node.js/Chrome 调试配置连接它。
安装 nodemon
在嵌入式 终端 (Alt+F12 )中,输入
npm install --save-dev nodemon或yarn add nodemon --dev将 nodemon 安装为开发依赖项。
在调试模式下使用 nodemon 启动应用
调试应用
按需在代码中设置 断点。
按照 调试正在运行的 Node.js 应用程序中的说明创建一个新的 附加到 Node.js/Chrome 配置,并选中 自动重新连接 复选框。

通常,您无需更改配置中的
9229端口,因为这是调试器监听的默认端口。 但您可以在以调试模式运行应用程序时记录的消息中再次确认所使用的端口。
在工具栏的 运行 小部件列表中,选择新创建的 附加到 Node.js/Chrome 配置,然后单击其旁边的
。 调试器将在 WebStorm 中的代码中设置的断点处停止。
现在,每次您对代码进行更改并 Ctrl+S 保存后,nodemon 都会自动重新加载应用程序,调试器也会自动重新附加到重新启动的进程。