首页 > 其他分享 >在VS Code中启动Edge浏览器调试Vue项目

在VS Code中启动Edge浏览器调试Vue项目

时间:2024-01-16 15:47:57浏览次数:32  
标签:Code Vue webRoot VS Edge 调试

最近维护一个Vue 2.x的老项目,网上的资料介绍在VS中调试前端代码都是使用Chrome浏览器,但我没有装Chrome浏览器,想在VS Code中直接调试Vue代码,百度了很多资料,尝试了好几种方案,终于找到简单可行的方法。

根据微软官方的资料,如果想在VS Code中使用Edge浏览器进行调试,可以安装Microsoft Edge Tools for VS Code 插件,安装后可以打开一个跟VS Code集成的Edge浏览器,详细内容请参考官方链接:

在 Visual Studio Code 中调试 Microsoft Edge - Microsoft Edge Development | Microsoft Learn

DevTools 扩展的 launch.json 文件 - Microsoft Edge Development | Microsoft Learn

但是在VS Code中集成Edge进行调试对于电脑屏幕比较小的情况很不方便,而且还有一个问题就是这个集成的Edge浏览器打开我的Vue网站样式有问题,最后只好放弃该方案。

下面是安装Microsoft Edge Tools 后在launch.json文件里面添加的默认配置内容:

"configurations": [
        {
            "type": "vscode-edge-devtools.debug",
            "request": "attach",
            "name": "Attach to Microsoft Edge and open the Edge DevTools",
            "url": "http://localhost:9528",
            "webRoot": "${workspaceFolder}"
        },
        {
            "type": "vscode-edge-devtools.debug",
            "request": "launch",
            "name": "Launch Microsoft Edge and open the Edge DevTools",
            "url": "http://localhost:9528",
            "webRoot": "${workspaceFolder}"
        }
    ]

安装该工具后,再添加两个使用VS Code直接打开独立的Edge浏览器的配置:

{
            "name": "Attach to Edge",
            "port": 9222,
            "request": "attach",
            "type": "msedge",
            "webRoot": "${workspaceFolder}"
        },
        {
            "name": "Launch Edge",
            "request": "launch",
            "type": "msedge",
            "url": "http://localhost:9528",
          
        },

        {
            "name": "chrome",
            "type": "chrome",
            "request": "launch",
            "url": "http://localhost:9528/",
            "webRoot": "${workspaceRoot}"
        },

保存launch.json文件,之后在VS Code的调试活动面板运行和调试下拉框里面选择 Lanuch Edge,点击按钮进行调试就可以打开一个Edge窗口。

注意启动调试之前,还需要修改Vue的调试工具支持 devtool: 'source-map',注意不同的Vue CLI版本devtool 设置所在的文件不同,详细内容请参考Vue官方文档:

在 VS Code 中调试 — Vue.js (vuejs.org)

按照上文内容介绍,的确可以打开Edge进行调试,但是无法正确命中断点,这是因为使用Vue CLI工程发布后的项目文件对JS进行了编译,浏览器里面运行的JS代码不是项目源码,所以需要映射要调试的代码路径,在launch.json里面增加 sourceMapPathOverrides 的设置,并且修改webRoot的设置,修改后的配置内容如下:

         {
            "name": "Launch Edge",
            "request": "launch",
            "type": "msedge",
            "url": "http://localhost:9528",
            "webRoot": "${workspaceFolder}/src",
            "sourceMapPathOverrides": {"webpack:///src/*": "${webRoot}/*" }  
        },

 sourceMapPathOverrides 的设置还可以指定更多的源码映射路径,比如下面的例子:

"configurations": [
        {
            "type": "chrome",
            "request": "launch",
            "name": "Launch Chrome against localhost",
            "url": "http://localhost:8091/dist/#/",
            "webRoot": "${workspaceFolder}/src",
            "breakOnLoad": true,
            "sourceMapPathOverrides": {
                "webpack:///./*": "${webRoot}/*",
                "webpack:///src/*": "${webRoot}/*",
                "webpack:///*": "*",
                "webpack:///./~/*": "${webRoot}/node_modules/*",
                "meteor://app/*": "${webRoot}/*"
            }
        }
    ]

总结:

上面的过程关键点就是lauch.json的配置,用一张图片来总结,如下图。

 

标签:Code,Vue,webRoot,VS,Edge,调试
From: https://www.cnblogs.com/bluedoctor/p/17967808

相关文章

  • vue入门——???
    上次回顾:#1ref-放在组件上---》在父组件中--》this.$refs.名字-->组件对象--->组件对象--->属性,方法就可以拿到-放在普通标签上#2this.$parent-拿到父组件对象#3props-数组形式:props:['自定义属性的名字','自定义属性的名字1']......
  • 《全局实例篇》Vue.compont注册全局组件
    注册一个全局组件语法格式如下:Vue.component(tagName,options)tagName为组件名,options为配置选项。注册后,我们可以使用以下方式来调用组件:<tagName></tagName>全局组件所有实例都能用全局组件。<divid="app"> <runoob></runoob></div><script>//注册Vue.compon......
  • 文心一言 VS 讯飞星火 VS chatgpt (180)-- 算法导论13.4 3题
    三、用go语言,在练习13.3-2中,将关键字41、38、31、12、19、8连续插入一棵初始的空树中,从而得到一棵红黑树。请给出从该树中连续删除关键字8、12、19、31、38、41后的红黑树。文心一言,代码不能运行:为了解决这个问题,我们首先需要构建一棵红黑树,然后依次删除给定的关键字。以下......
  • 《标签篇》Vue.directives自定义指令v-my
    参考链接:https://www.runoob.com/vue2/vue-custom-directive.html自定义指令除了默认设置的核心指令(v-model和v-show),Vue也允许注册自定义指令。下面我们注册一个全局指令v-focus,该指令的功能是在页面加载时,元素获得焦点:<divid="app"> <p>页面载入时,input元素自......
  • ftp和vsftpd
    目录简介ftp用法vsftpd用法vsftpd优势简介FTP是文件传输协议,用于在计算机之间传输文件。VSFTPD是一个非常安全的FTP守护进程,是一个用于UNIX系统的GPL许可的FTP服务器。它支持IPv6和SSL,可以处理虚拟IP配置、虚拟用户、独立或inetd操作、强大的每用户可配置性、带宽限制、源IP配......
  • 【vue】《 npm、pnpm和cnpm的区别及使用 》
    区别npm  NPM全称NodePackageManager,是Node.js包管理工具,是全球最大的模块生态系统,里面所有的模块都是开源免费的;也是Vue/Node.js的包管理工具,相当于Java中的Maven、Python中的PIP。  npm是Node.js官方推出的包管理工具,它是JavaScript世界中最流行的包管理工具之一。通过......
  • 初始化一个vite+vue3的前端项目要做的额外的事儿
    添加.editorconfig文件#http://editorconfig.orgroot=true[*]charset=utf-8indent_style=spaceindent_size=4end_of_line=lfinsert_final_newline=truetrim_trailing_whitespace=true[*.md]insert_final_newline=falsetrim_trailing_whitespace......
  • Codeforces Round 920 (Div. 3)
    基本情况A、C秒的很快。B、D都错了一发才过。E博弈论属于是短板。E.EattheChipProblem-E-Codeforces首先考虑谁可能赢。因为\(Alice\)只能向下,\(Bob\)只能向上,而\(Alice\)先手。显然两者行差为奇数时\(Alice\)有可能赢,偶数时\(Bob\)有可能赢。再考虑平......
  • vue引入图片的几种方式
    vue引入图片的几种方式:https://blog.csdn.net/qq_36571836/article/details/118806421?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_baidulandingword~default-4-118806421-blog-80015777.235^v40^pc_relevant_3m_sort_dl_base2&spm=1001.2101.3001.4242......
  • Road Extraction from Remote Sensing Images Using the Inner Convolution Integrate
    landbench里面,李老师提到的encode-decode。remotesensing,大类是2区,小类是2到3区。分类的题目:“利用内部卷积集成编码器-解码器网络和定向条件随机场从遥感图像中提取道路”(pdf)“RoadExtractionfromRemoteSensingImagesUsingtheInnerConvolutio......