运行和调试 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 将自动使用 Node 解释器 字段中 Node.js 页面的项目默认解释器。 在大多数情况下,PyCharm 会检测到项目的默认解释器并自动填写该字段。
您也可以选择另一个已配置的本地或远程解释器,或点击
并配置一个新的。
在 文件 字段中,指定启动应用程序的主文件路径(例如, bin/www 对于 Express 应用程序)。
可选:
指定自定义 Node.js 启动的 节点形参(O)。 例如,您可能希望启用一个试验性的 Node.js 功能或传递其他选项。 更多信息,请参考 Node.js official website。
在 应用程序形参(C) 字段中,指定在启动时通过 process.argv数组传递给应用程序的 Node.js 特定参数。
要在浏览器中自动打开应用程序,请配置一个 before-launch 任务。 点击
以展开 执行前(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 运行/调试配置启动调试器与您的应用程序一起运行。
将调试器附加到已运行的应用程序。 在这种情况下,您的应用程序已经在 debug mode中运行,PyCharm会附加到正在运行的进程。
PyCharm 识别
--inspect、--inspect-brk和现在不推荐使用的--debug标志,因此您可以使任何应用程序可调试。要调试正在运行的应用程序,请使用 Attach to Node.js/Chrome配置。
使用 PyCharm,您还可以调试运行在 Docker 容器中,或通过 各种传输协议或 SSH 访问的远程主机上的 Node.js 应用程序。
在您的计算机上与 Node.js 应用程序一起启动调试器

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

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

指定目标应用程序运行的主机和启动 Node.js 进程时传递给
--inspect或--inspect-brk的端口以进行连接。
请从信息消息中复制端口号
Debugger listening <host>:<port>,在 终端 工具窗口或 运行工具窗口 ,它控制正在运行的应用程序。
从工具栏的 运行 小部件列表中,选择新创建的 附加到 Node.js/Chrome 配置,然后点击旁边的
。 调试工具窗口 打开。
执行将触发断点代码的操作。 控制调试会话的权力回到 PyCharm。
切换到 PyCharm。 在 调试 工具窗口中, 逐步执行断点 ,切换帧,动态更改值, 检查挂起的程序, 评估表达式 ,并 设置监视。
调试使用 nodemon 的 Node.js 应用程序
内置调试器 PyCharm 可以自动重新连接到运行中的 Node.js 进程。 这使您可以调试使用 nodemon utility的 Node.js 应用程序,当代码更新时,该实用工具会自动重新加载您的 Node.js 进程。
要调试此类应用程序,您需要在 debug模式下启动它(带有 --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/Chrome 配置,如 调试正在运行的 Node.js 应用程序中所述,并选择 自动重新连接 复选框。

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