运行和调试 Node.js
GoLand 可协助您运行和调试 Node.js 应用。 您可以调试通过 GoLand 启动的应用,也可以附加到已运行的应用中。
开始之前
请确保在 设置 | 插件 页面、 已安装 选项卡中启用了所需插件 JavaScript 和 TypeScript 与 JavaScript Debugger。 有关更多信息,请参阅 管理插件。
请按照 从 JetBrains Marketplace 安装插件 中所述,在 设置 | 插件 页面、 Marketplace 选项卡中安装并启用 Node.js 插件。
运行 Node.js 应用
GoLand 依据 Node.js 类型的运行配置来运行 Node.js 应用。 GoLand 也使用该配置来 与 Node.js 应用同时启动调试器。
创建 Node.js 运行/调试配置
转到 。 或者,从工具栏的 运行 小组件中选择 编辑配置。

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

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

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

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

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

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

指定目标应用程序运行的主机,以及启动 Node.js 进程时传递给
--inspect或--inspect-brk的端口号以建立连接。
从 终端 工具窗口或控制运行中应用程序的 Run tool window 中的信息消息
调试器正在监听 <host>:<port>复制端口号。
在工具栏的 运行 小部件列表中,选择新创建的 附加到 Node.js/Chrome 配置并点击其旁边的
。 Debug tool window 将打开。
执行会触发断点代码的操作。 对调试会话的控制权将返回给 GoLand。
切换到 GoLand。 在 调试 工具窗口中, 逐步执行断点 ,在帧之间切换,动态更改值, 检查挂起程序、 计算表达式 以及 设置监视。
调试使用 nodemon 的 Node.js 应用
GoLand 内置调试器可自动重新连接到正在运行的 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 启动应用
创建并运行以下
npm debug脚本:"debug": "nodemon --inspect <path_to_the_file_that_starts_your_application>如需详细信息,请参阅 Running and debugging scripts。
或者,通过 Node.js 运行/调试配置传递
inspect标志, 如上所述。
调试应用
根据需要在代码中设置 breakpoints。
创建一个新的 附加到 Node.js/Chrome 配置,具体请参阅 调试正在运行的 Node.js 应用程序 ,然后勾选 自动重新连接 复选框。

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