WebStorm 如何调试 Vue 项目

image

前言

  在日常开发和各种教程中,最常见的 debug 方式就是在代码中插入 console.log 语句,然后在 Chrome 控制台中查看日志。显而易见,插入console.log 的效率不高,那是否有更高效的 debug 方式呢?断点调试允许开发者在代码的特定行暂停执行,实时查看和修改变量的值。但是整个使用过程,我们必须在 Chrome 中打点调试,然后回到 IDE 中对代码进行修改。这个过程相对繁琐,那么我们是否可以直接在本地IDE中去打断点呢?答案是肯定的,因为我本人是 Jetbrains 的忠实粉丝,因此本文将主要介绍如何使用 Webstorm 来进行断点调试。另外,WebStorm 支持多种调试工具,包括浏览器的开发者工具,但本文主要讲解的是使用 WebStorm 自带的调试功能。

一、WebStorm 配置

1.1 准备工作

  WebStorm 为 JavaScript 代码提供内置调试器,可用于在 Web 浏览器或 IDE 的内置浏览器中预览和调试应用程序。此服务器始终运行,不需要任何手动配置。首先,要确保在 WebStorm 中启用了 JavaScript Debugger 插件。打开设置,然后选择 Plugins(插件),单击 Installed 选项卡。在搜索字段中,输入 JavaScript Debugger

注意:仅在 Google Chrome 和其他基于 Chromium 的浏览器中支持 JavaScript 代码的调试。

1.2 修改默认浏览器配置

  首先,必须修改需改浏览器默认配置,才能自动打开谷歌浏览器进行调试。另外,绿色箭头所指的选项必须要添加,否则调试时自动打开的页面是about:blank

--remote-allow-origins=* --remote-debugging-port

image

1.3 配置 JavaScript 调试器

1.3.1 设置服务器调试端口

  打开设置,然后选择 Build, Execution, Deployment | Debugger。在 Built-in server (内置服务器) 区域中,指定内置 Web 服务器运行的端口。默认情况下,此端口设置为默认 WebStorm 端口 63342,WebStorm 通过该端口接受来自服务的连接。也可以将端口号设置为从 1024 开始的任何其他值,但非必要无需修改它。若非要修改,不要改为8080等影响正常业务的端口。如果启动时指定的这个端口被占用,则会自动将端口号加1再启动。
image

  通过分别清除 Can accept external connectionsAllow unsigned requests 复选框,禁止从其他计算机或 WebStorm 外部对内置服务器上文件的调用。

1.3.2 选择删除断点的方法

  默认情况下,我们可以通过单击鼠标左键来切换断点。若是想要更改此行为,请打开设置并导航到 Build, Execution, Deployment | Debugger。在 Remove breakpoint 区域中,选择相应的选项。
image

二、调试本地应用程序

  如果应用程序在本地以开发模式运行,则可以从内置的 Run tool 窗口或 Debug tool窗口开始调试,如下图所示。
image

2.1 配置调试环境

  当我们使用本地 Web 服务器或 Web 服务器位于远程主机上时,需要创建 Run/Debug 配置以启动 JavaScript 调试器。为此,请单击 WebStorm 窗口右上角的列表,然后选择 Edit Configurations。或者,在从主菜单中选择 Run | Edit Configurations ,会自动打开 Edit Configurations 对话框。
image

  在弹出的 Run/Debug Configurations 对话框中,单击工具栏上的 ➕ 号,然后从列表中选择 JavaScript Debug。在配置窗口中,选择“Browser”作为调试类型,并选择要使用的浏览器(如Chrome、Firefox等),指定运行应用程序的 URL 地址,点击“OK”保存配置设置。
image

选项说明
Name为运行配置指定名称,以便在编辑或运行时快速识别它。
Store as project file使用运行配置设置保存文件,以便与其他团队成员共享。
默认情况下,处于禁用状态,运行配置存储在 .idea/workspace.xml 中。
URL指定引用要调试的应用程序的 URL 地址
Browser列表中选择将调试应用程序的浏览器
Ensure breakpoints are detected when loading scripts选中此复选框可确保立即命中页面加载时执行的代码中的断点。
请注意,这可能会减慢初始页面加载速度。
Remote URLs of local files选择所需的本地文件或目录、远程URL 地址
Before launch指定在启动选定的运行/调试配置之前要执行的任务
Show this page选中此复选框可在启动 run/debug 之前显示 run/debug configuration 设置
Activate tool window启动 run/debug 配置时打开 Run 或 Debug tool 窗口。

  接下来我们可以开始调试了。从 WebStorm 窗口右上角的列表中选择新创建的配置,然后单击 Debug 按钮。
image

2.2 项目的启动

  使用 WebStorm 打开项目文件夹,然后在项目目录中找到并打开package.json 文件,其通常位于项目根目录中。在 package.json 文件中,找到 scripts 部分,这部分包含了项目的各种命令脚本,包括启动脚本。启动脚本通常命名为 startdev,点击启动脚本前的绿色箭头,然后点击Run 'dev' 启动开发服务器。或者可以通过 npm run dev 或者 npm run serve 运行需要调试的项目,成功运行后,会提示项目访问URL,这个要和前文提到的配置项里面URL保持一致。

2.3 开始调试

  1. 在WebStorm中打开你想要调试的Vue文件,可以通过左侧的导航栏找到你的项目文件,或者直接在编辑器中通过文件路径打开。

  2. 根据需要在 JavaScript 代码行左侧点击,之后就会看到一个红色的圆圈,这就是断点。当代码执行到这里时,它会暂停,允许你查看和修改变量值、调用栈等信息。

    image

  3. 点击WebStorm右上角的绿色虫子图标(或使用快捷键Shift+F9)来启动调试会话。此时,你的浏览器应该会自动打开并加载你的Vue项目。

    image

  4. 当你的Vue应用加载到包含断点的代码行时,代码执行会暂停。此时,你可以看到WebStorm的调试视图已经打开,显示了当前的调用栈、变量值等信息。

    image

  5. 在调试视图中,你可以执行各种调试操作,如下所示,这些操作可以帮助你更好地理解代码的执行流程。

    操作按钮说明
    Rerun重新运行当前的调试会话,允许在不关闭调试器的情况下重新启动调试会话。
    Resume Program继续运行程序,直到遇到下一个断点或程序结束。
    Pause Program暂停程序的执行,这在查看当前程序执行状态时非常有用。
    Step Over逐行执行当前函数,不进入函数内部。
    Step Into进入当前行中调用的函数。
    Step Out从当前函数返回到调用它的函数。
    Restart重新启动调试会话。
    View Breakpoints查看和管理所有断点。
    Mute Breakpoints静音所有断点。程序将继续运行,不会在任何断点处暂停
  6. 如果你在调试过程中修改了变量值或代码,你可以使用“Update Application on Save”功能来实时刷新浏览器中的应用。这个功能可以确保你的修改立即生效,而无需手动刷新页面。

  7. 当你完成调试后,可以点击调试视图中的红色停止按钮来结束调试会话。

三、附录

3.1 调试器控制台

  交互式 Console 窗格显示堆栈跟踪和代码中记录的所有内容,而且仅会在我们调试应用程序或调试测试时显示,当我们正在运行应用程序或预览 Web 页面时,它不可用。

3.1.1 导航到源代码

  在使用 console.* 输出的每一行,WebStorm 都会显示文件的名称和调用它的行,单击此链接跳转到源代码中的调用。

image
  控制台还显示堆栈跟踪,单击报告的问题旁边的链接可跳转到发生此问题的代码行。
image

3.1.2 过滤消息

  Console 选项卡以树状视图显示对象,默认情况下,堆栈跟踪处于折叠状态。Warnings、errors 和 info 消息具有不同的图标和背景颜色,使其更容易被注意到。

image

3.2 重新加载当前页面

  除了通过单击 Debug 工具窗口中的 Rerun 按钮重新启动应用程序外,我们还可以使用 Reload in Browser 操作重新加载当前导航的页面。要重新加载当前页面,请单击工具栏上的 :,然后选择 Reload in Browser,如下图所示。
image

总结

  关于使用 WebStorm 如何调试 Vue 代码就介绍到这了,相信你已经掌握了使用 WebStorm 调试 Vue 代码的基本方法。WebStorm 作为一款功能强大的IDE,提供了丰富的调试功能和技巧,可以帮助你更高效地开发和调试 Vue 应用。当然,除了 WebStorm 外,还有很多其他的调试工具和技术可以使用,如Chrome DevTools、Visual Studio Code等。你可以根据自己的需求和喜好选择合适的工具来提高开发效率,希望本文对你有所帮助!

image

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/13281.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

timedatectl status显示系统时间相关信息

timedatectl status命令用于显示当前系统的时间和日期相关信息。 下面是每行含义: Local time: 当前系统的本地时间Universal time: 当前系统的协调世界时(UTC)RTC time: 硬件时钟(Real Time Clock)的时间Time zone:…

【网页设计】HTML5 和 CSS3 提高

目标 能够说出 3~5 个 HTML5 新增布局和表单标签能够说出 CSS3 的新增特性有哪些 1. HTML5 的新特性 注:该部分所有内容可参考菜鸟教程菜鸟教程 - 学的不仅是技术,更是梦想! (runoob.com) HTML5 的新增特性主要是针对于以前的不足&#xf…

09C++结构体

/*结构体属于用户自定义的数据类型&#xff0c; 允许用户存储不同的数据类型, 语法:struct 结构体名{结构体成员列表} ;*/ //struct 结构体名 变量名 #include <iostream> #include <string> using namespace std; struct student { string name; int age;int s…

软件测试之白盒测试(超详细总结)

&#x1f345; 点击文末小卡片 &#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 白盒测试 白盒测试&#xff08;White Box Testing&#xff09;又称结构测试、透明盒测试、逻辑驱动测试或基于代码的测试。白盒测试只测试软件产品的内部结…

【入门篇】数字统计——多语言版

题目跳转&#xff1a;数字统计 题目解析&#xff1a; 这道题目要求统计在给定范围 [L, R] 内所有整数中数字 2 出现的次数。例如&#xff0c;在范围 [2, 22] 中&#xff0c;数字 2 分别在数 2、12、20、21、22 中出现的次数&#xff0c;最终出现了6次。 题目的输入为两个正…

C++初阶——list

一、什么是list list是一个可以在序列的任意位置进行插入和删除的容器&#xff0c;并且可以进行双向迭代。list的底层是一个双向链表&#xff0c;双向链表可以将它们包含的每个元素存储在不同且不相关的存储位置。通过将每个元素与前一个元素的链接和后一个元素的链接关联起来&…

FlinkSql读取kafka数据流的方法(scala)

我的scala版本为2.12 <scala.binary.version>2.12</scala.binary.version> 我的Flink版本为1.13.6 <flink.version>1.13.6</flink.version> FlinkSql读取kafka数据流需要如下依赖&#xff1a; <dependency><groupId>org.apache.flink&…

力扣 LeetCode 19. 删除链表的倒数第N个结点(Day2:链表)

解题思路&#xff1a; 快慢指针 class Solution {public ListNode removeNthFromEnd(ListNode head, int n) {ListNode dummy new ListNode(-1);dummy.next head;ListNode fast dummy;ListNode slow dummy;for (int i 0; i < n; i) {fast fast.next;}while (fast.ne…

提升法律文书处理效率的秘密武器:开源文档比对工具解析

本篇文章介绍了一款针对律师行业的免费开源文档比对工具&#xff0c;旨在解决法律文档的多版本比对难题。通过逐字、逐句精确比对、语义分析、批量处理等核心功能&#xff0c;该工具可高效识别文本差异&#xff0c;提升文书审查效率并降低错误风险。它支持多种文件格式&#xf…

linux命令详解,openssl+历史命令详解

openssl openssl是一个开源的加密工具包&#xff0c;提供了各种加密、解密、签名、验证等功能 openssl passwd -1 123password表示这个命令用于处理密码相关的操作&#xff0c;-1参数指定使用MD5加密算法对密码“123”进行加密处理。MD5是一种常用的哈希算法&#xff0c;它将…

轻松理解操作系统 - Linux的虚拟文件系统是如何简化我们的使用的?

在前面几期&#xff0c;我们不仅了解了 Linux文件系统 是如何在硬盘等储存介质上保存文件的&#xff1a; 什么是软硬链接 文件的“身份证” - inode 真正储存文件的地方 - 数据块 文件系统的心脏 - 超级块 以及了解了 Linux系统 中具体都有一些什么文件&#xff1a; Linu…

LeetCode【0019】删除链表的倒数第N个结点

本文目录 1 中文题目2 求解方法&#xff1a;虚拟头节点和快慢指针2.1 方法思路2.2 Python代码2.3 复杂度分析 3 题目总结 1 中文题目 给定一个链表&#xff0c;删除链表的倒数第 n 个结点&#xff0c;并且返回链表的头结点。 示例&#xff1a; 链表如上&#xff1a; 输入&a…

【JavaSE】多线程案例---阻塞队列

1. 阻塞队列 阻塞队列是一种特殊的队列&#xff0c;也遵守 " 先进先出 " 的原则。 阻塞队列是一种线程安全的数据结构&#xff0c;并且具有以下特性&#xff1a; 1. 当队列为满时&#xff0c;继续进行入队列操作就会阻塞&#xff0c;直到有其他线程从队列中取走元素…

SQL练习(2)

题源&#xff1a;牛客官网 选择题 假设创建新用户nkw&#xff0c;现在想对于任何IP的连接&#xff0c;仅拥有user数据库里面的select和insert权限&#xff0c;则列表语句中能够实现这一要求的语句是&#xff08;&#xff09; A grant select ,insert on *.* to nkw% B grant…

Hyper-v中ubuntu与windows文件共享

Hyper-v中ubuntu与windows文件共享 前言相关链接第一步--第一个链接第二步--第二个链接测试与验证 前言 关于Hyper-V的共享我搞了好久&#xff0c;网上的很多教程太过冗余&#xff0c;我直接采用最简单的办法吧 相关链接 Hyper-V中Ubuntu 同windows系统共享文件夹-百度经验 …

【TCP零窗口问题】

零窗口问题说明 零窗口问题(Zero Window Problem)是指在TCP连接中,当接收方的接收缓冲区已满时,无法接受新的数据。此时,接收方会向发送方发送一个窗口大小为0的TCP消息,告知其暂停发送数据,直到接收方释放出缓冲区空间。这种情况在高负载或接收方处理能力不足时比较常见…

Oracle OCP认证考试考点详解082系列19

题记&#xff1a; 本系列主要讲解Oracle OCP认证考试考点&#xff08;题目&#xff09;&#xff0c;适用于19C/21C,跟着学OCP考试必过。 91. 第91题&#xff1a; 题目 解析及答案&#xff1a; 关于 Oracle 数据库中的索引及其管理&#xff0c;以下哪三个陈述是正确的&#x…

2445.学习周刊-2024年45周

一片树叶展示了秋天的美 ✍优秀博文 数据仓库如何划分主题域在忙碌的工作中如何保持信息的输入&#xff1f;PC小米妙享安装解锁流转补丁智能数据建设与治理Dataphin对方讲话不要乱插嘴轩师处世之道 ✍实用工具 typing-practice云搭 自动化巡检系统 ✍精彩言论 话说的越快、…

关于解决使用VMWare内的虚拟机无法识别USB问题小结

目录 前言 0. 查看是不是没有开启USB3.0的支持 1. 检查一下是否禁用了VMWare USB服务 2. 无奈之举 前言 笔者今天帮助一位同志解决了VMWare内的虚拟机不识别挂载设备的办法。这里对笔者使用的排查手段做一个总结。 0. 查看是不是没有开启USB3.0的支持 我们的第一件事情就…

【364】基于springboot的高校科研信息管理系统

摘 要 信息数据从传统到当代&#xff0c;是一直在变革当中&#xff0c;突如其来的互联网让传统的信息管理看到了革命性的曙光&#xff0c;因为传统信息管理从时效性&#xff0c;还是安全性&#xff0c;还是可操作性等各个方面来讲&#xff0c;遇到了互联网时代才发现能补上自古…