在 Chrome 中调试 JavaScript
最后修改时间:2023 年 10 月 11 日所需插件:
Javascript and TypeScript
, JavaScript Debugger
- 这些插件仅在 IntelliJ IDEA Ultimate 中可用,默认情况下启用。
IntelliJ IDEA 为您的客户端JavaScript 代码提供内置调试器。
笔记
仅Google Chrome和其他基于Chromium的浏览器支持JavaScript代码的调试。
以下说明将引导您完成开始使用此调试器的基本步骤。
在你开始之前
一定要在设置中启用JavaScript 和 TypeScript 一批插件。按打开 IDE 设置,然后选择插件。单击“已安装”选项卡。在搜索字段中,输入JavaScript 和 TypeScript。有关插件的更多信息,请参阅插件管理。CtrlAlt0S
一定要在设置中启用JavaScript调试器一堆插件。点击打开IDE,然后选择插件。单击“已安装”选项卡。在搜索字段中,输入JavaScript调试器。有关插件的更多信息,请参阅管理插件。CtrlAlt0S
配置内置调试器,如配置 JavaScript 调试器中所述。
要使您对 HTML、CSS 或 JavaScript 代码所做的更改立即显示在浏览器中而需要重新加载页面,请激活实时编辑功能。有关实时编辑功能的更多信息,请参阅HTML、CSS和JavaScript中的实时编辑。
调试在内置服务器上运行的应用程序
IntelliJ IDEA 有一个内置的 Web 服务器,可用于预览和调试您的应用程序。该服务器始终运行,不需要任何手动配置。相对于项目结构,所有项目文件都在根 URL http://localhost:<built -in server port>/<project root> 的内置服务器上提供。
开始调试
根据需要在JavaScript代码中设置断点。
打开引用要调试的 JavaScript 的 HTML 文件,或在“项目”工具窗口中选择该 HTML 文件。
从编辑器或选择的上下文菜单中,选择Debug <HTML_file_name>。IntelliJ IDEA 生成调试配置并通过它启动调试会话。文件将在浏览器中打开,并出现“调试”工具窗口。
提示
要保存自动生成的配置以便供进一步重复使用,请在调试会话结束后从上下文菜单中选择“保存 <HTML_file_name>” 。
在“调试”工具窗口中,常进行:单步执行程序、 停止和恢复程序执行、挂起时检查程序、查看实际的 HTML DOM、在控制台中运行 JavaScript 代码片段等。
提示
默认情况下,调试会话会在带有自定义Chrome 用户数据的新闻中启动。要打开具有您熟悉外观的新 Chrome 实例,请在 IntelliJ IDEA 中配置 Chrome 以从您的用户数据开始。有关详细信息信息,请参阅使用默认 Chrome 用户数据启动调试会话。
例子
假设您有一个简单的应用程序,由一个index.html文件和一个index.js文件组成,其中index.html引用index.js。要使用内置服务器开始调试此应用程序,请在编辑器中打开index.html。 html,然后从下面菜单中选择“调试'index.html'” 。
IntelliJ IDEA 自动创建运行/调试配置,并启动调试会话。
要启动新的运行/调试配置,请单击工具栏上的 ( ) 或选择“运行”|“重新调试”。从主菜单进行调试。
在浏览器中重新加载当前页面
除了通过单击“调试”工具窗口中的“重新运行”按钮( )来重新启动应用程序之外,您还可以单击“在浏览器中重新加载”按钮( )来重新加载当前导航的页面。这与Chrome中的重新加载页面功能( )的工作方式相同。Ctrl0R
下面的示例显示了一个由两个 HTML 页面和一个 JavaScript 脚本组成的简单应用程序。开始home.html页面有一个“提交”按钮,单击该按钮后,calculator.html 页面将打开,其中包含Calculator.js脚本执行的结果。
在调试会话期间,单击“重新运行”按钮 ( ) 将使用“提交”按钮重新加载home.html页面。单击“在浏览器中重新加载”按钮 ( ) 将重新加载Calculator.html页面,以便清除所有前面的脚本,并且调试器返回到Calculator.js中的第 1 行。
在模式下调试在本地主机上开发运行的应用程序
如果您的应用程序在开发模式下运行localhost
,您可以从内置终端( )、“运行”工具窗口或“调试”工具窗口开始调试它。只需按住并单击应用程序正在运行的 URL。AltF12CtrlShift
在代码中设置断点。
以开发模式启动应用程序,例如使用 npm 脚本。
运行工具窗口或终端显示应用程序正在运行的 URL。按住并单击此 URL 链接。IntelliJ IDEA 使用自动生成的启动调试会话CtrlShiftJavaScript Debug类型的配置。
调试在外部 Web 服务器上运行的应用程序
通常,您可能想要调试在外部开发 Web 服务器(例如由 Node.js 提供支持)上运行的应用程序的客户端 JavaScript。
根据需要在 JavaScript 代码中设置断点。
在开发模式下运行应用程序。通常你需要
npm start
为此而奔跑。当开发服务器准备就绪时,复制应用程序在浏览器中运行的 URL 地址 - 您需要在运行/调试配置中指定此 URL 地址。
创建JavaScript 调试类型的调试配置:转到运行 | 编辑配置,在打开的“编辑配置”对话框中,单击工具栏上的“添加”按钮 ( ),然后从列表中选择“JavaScript 调试” 。在打开的“运行/调试配置:JavaScript 调试”对话框中,指定运行应用程序的 URL 地址。可以按照上述步骤 2中的说明从浏览器的地址栏中复制此 URL 。单击“确定”保存配置设置。
选择新创建的从工具栏上的“选择运行/调试配置”列表中选择配置,然后单击列表旁边的“运行”按钮 ( )。运行配置中指定的 URL 地址将在浏览器中打开,并显示调试工具窗口。
在“调试”工具窗口中,照常进行:单步执行程序、 停止和恢复程序执行、挂起时检查程序、查看实际的 HTML DOM、在控制台中运行 JavaScript 代码片段等。
有关更多调试示例,请参阅 WebStorm 博客中的以下帖子:调试 React 应用程序和调试 Angular 应用程序。
调试异步代码
IntelliJ IDEA 支持调试异步客户端 JavaScript 代码。IntelliJ IDEA 可以识别异步代码中的断点,在断点处停止,并让您单步执行此类代码。一旦命中异步函数内的断点或单步执行异步代码,就会在“调试器”选项卡的“框架”Async call from <caller>
窗格中添加一个新元素。IntelliJ IDEA 显示完整的调用堆栈,包括调用者和异步操作开始的整个过程。
下图显示了 JavaScript 调试会话的示例。
调试器在第 3 行(断点)处停止,然后在第 5 行(断点)处停止。单击Step into后,调试器将停在第 5 行(在function
),然后移至第 6 行。
异步调试模式默认开启。要禁用异步堆栈跟踪,请js.debugger.async.call.stack.depth
在注册表中设置为0
。
调试工
IntelliJ IDEA 支持调试Service Workers和Web Workers。IntelliJ IDEA 可以识别每个工作线程中的断点,并在调试工具窗口的调试器选项卡上的框架窗格中将其调试数据显示为单独的线程。
请注意,IntelliJ IDEA 只能调试专用工作线程,目前不支持调试共享工作线程。
在Workers中设置断点进行调试。
如果您使用Service Workers,请确保在“调试器”页面(“设置”|“构建、执行、部署”|“调试器”)上选中“允许未签名的请求”复选框。否则,您的服务工作线程可能在调试会话期间不可用。
创建JavaScript 调试类型的调试配置,如上面调试在外部 Web 服务器上运行的客户端 JavaScript中所述。
选择新创建的从工具栏上的选择运行/调试配置列表中选择配置,然后单击列表旁边的调试按钮 ( )。
运行配置中指定的 HTML 文件将在浏览器中打开,并且“调试”工具窗口将打开,其中“框架”列表显示所有Workers:
要检查Worker的数据(变量、监视等),请在列表中选择其线程,然后在“变量”和“监视”窗格中查看其数据。当您选择另一个Worker时,窗格的内容会相应更新。
感谢您的反馈意见!