运行与调试 Node.js
PyCharm 可帮助您运行并调试您的 Node.js 应用程序。 您可以调试从 PyCharm 启动的应用程序,也可以附加到已在运行的应用程序。
开始之前
请确保在 设置 | 插件 页面上, 已安装 选项卡中启用了所需的插件 JavaScript and TypeScript、 JavaScript Debugger 和 Node.js。 要了解更多信息,请参阅 管理插件。
运行 Node.js 应用程序
PyCharm 会根据类型为 Node.js 的运行配置运行 Node.js 应用程序。 PyCharm 还会使用此配置来 与 Node.js 应用程序一起启动调试器。
创建 Node.js 运行/调试配置
转到 。 或者,从工具栏上的 运行 小部件中选择 编辑配置。

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

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

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

将打开 调试工具窗口。
执行会触发断点处代码运行的步骤。 例如,导航从应用程序的起始页到浏览器中的另一个页面。
切换到 PyCharm,此时 调试 工具窗口的控件已启用。 继续调试会话 — 逐步执行断点 、在帧之间切换、即时更改值、 检查挂起的程序、 计算表达式 ,并 设置监视。
调试正在运行的 Node.js 应用程序
使用 PyCharm,您可以调试已在开发模式下运行的应用程序,这意味着该应用程序是使用 --inspect 或 --inspect -brk 标志启动的。 调试会话通过 附加到 Node.js/Chrome 配置 发起,并使用 Chrome 调试协议。
从运行或调试工具窗口,或从内置终端启动调试器
如果应用程序是使用 --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 并点击链接。PyCharm 会使用自动生成的 附加到 Node.js/Chrome 配置启动调试会话。 执行会触发断点处代码运行的步骤。 例如,导航从应用程序的起始页到浏览器中的另一个页面。
通过运行/调试配置将调试器附加到正在运行的应用程序
运行您的应用程序,使用
--inspect或--inspect-brk标志, 如上所述。根据需要设置 断点。
在主菜单中,转到 ,然后在打开的 编辑配置 对话框中点击
,并从列表中选择 附加到 Node.js/Chrome。

将打开 运行/调试配置:附加到 Node.js/Chrome 对话框。
指定目标应用程序正在运行的主机,以及在启动 Node.js 进程时传递给
--inspect或--inspect-brk的用于连接的端口。
从 终端 工具窗口中的信息消息
Debugger listening <host>:<port>,或从控制正在运行的应用程序的 运行工具窗口 中复制端口号。
在工具栏上的 运行 小部件列表中,选择新创建的 附加到 Node.js/Chrome 配置,然后点击其旁边的
。 将打开 调试工具窗口。
执行会触发断点处代码运行的步骤。 调试会话的控制权返回到 PyCharm。
切换到 PyCharm。 在 调试 工具窗口, 逐步执行断点 、在帧之间切换、即时更改值、 检查挂起的程序、 计算表达式 ,并 设置监视。
调试使用 nodemon 的 Node.js 应用程序
PyCharm 内置调试器可以自动重新连接到正在运行的 Node.js 进程。 这使您能够调试使用 nodemon 实用程序 的 Node.js 应用程序,该实用程序会在代码更新时自动重新加载您的 Node.js 进程。
若要调试此类应用程序,您需要以 调试 模式启动它(使用 --inspect 或 --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配置中的端口,因为这是调试器正在监听的默认端口。 但是您可以在以调试模式运行应用程序时记录的消息中再次确认使用的是哪个端口。
在工具栏上的 运行 小部件列表中,选择新创建的 附加到 Node.js/Chrome 配置,然后点击其旁边的
。 调试器会在您在 PyCharm 中的代码中设置的断点处停止。
现在,每次您对代码进行任何更改并保存它们 Ctrl+S, nodemon 会自动重新加载应用程序,调试器也会自动重新附加到重新启动的进程。