题外话:这几个月用vue写了三个项目了,从绊手绊脚开始慢慢熟悉,婶婶的感到语言这东西还是得有点框框架架,太自由了容易乱搞,特别人多的时候。

从webpack开始
直接进入正题。有人觉得vue项目难调试,是因为用了webpack。所有代码揉在了一起,还加了很多框架代码,根本不知道怎么下手。所以vue+webpack调试要从webpack入手。我们先从一般情况开始说。
-sourcemap
webpack配置提供了devtool这个选项,如果设置为 ‘#source-map',则可以生成.map文件,在chrome浏览器中调试的时候可以显示源代码。
devtool: '#source-map'
然而这个设置实际上没这么简单。webpack官方给出了7个配置项供选择: 戳这里
这里不同的配置有些不同的效果,比如是否保留注释、保留行信息等,具体每一条什么意思这里不详解释,有兴趣的童鞋可以参考这篇文章
官方默认的是用 ‘#cheap-module-eval-source-map'
devtool: '#cheap-module-eval-source-map'
设置好之后,在vue项目调试的时候,代码里面标注debugger的时候就能看到对应的代码了,非常方便。
或者,直接找到对应的文件。在chrome用 'ctrl(command) + p‘,输入文件名,可以找到对应的源代码。
打断点:
需要注意的是,这里断点会打在下一行。同时一行代码运行在它的下一行才算执行。
-vue-cli
vue家的项目脚手架,推荐使用。vue-cli老家在这里
vue-cli可以帮我们自动搭建项目,首先npm全局安装
npm install -g vue-cli
然后创建一个新的项目
vue init webpack my-project
一路回车,搞定。(更多配置项请参考上面给出的vue-cli链接)
这里从网上下载了一个带webpack的vue项目(跑之前记得npm install一下)
从bulid文件夹里面就大概能看出:
其中,开发模式提供了devtool为'#cheap-module-eval-source-map',生产模式根据config文件夹下的productionSourceMap变量控制是否使用。
若为true,则devtool为'#source-map'
其他使用方法一致。非常方便。
线上调试
平时开发的时候,我们用webpack的热加载,可以省去挂载调试的步骤,非常方便。但是发布后部署到服务器上,就失去了这个本地优势。
如果使用挂载文件方式会比较麻烦。由于webpack打出来的文件有版本号这些信息,而且发布一个包看代码量可能需要等待不等,这个方案不实际。但是如果挂载的是热加载到端口下的文件的话,这个问题就很好办了。
-热加载
在此之前,先来分析一下webpack的热加载原理。
对项目抓包可以发现这么一个文件:__webpack_hmr
这是webpack热加载的服务器推送事件,eventsource类型,功能和websocket有点类似。大致作用是建立一个不会停止的stream流链接,服务器发送更新数据回来append到流的末端,前端读取最新append的数据,然后动态的更新页面上的东西。
接下来我们观察下上文提到的更新数据有哪些。随便更新一个文件,触发热加载,再抓个包,发现有两个.hot-update.json和一个.hot-update.js文件
这些具体做了些啥我不知道,这里就不深究了。应该是根据json里面的数据,达到一个准确更新的效果。
所以热更新其实就是监听服务器上的数据,有修改的话服务器发送数据过来,前端把数据拿来后替换到页面上这么一个过程。
-AutoResponder
接下来谈谈线上挂载测试,这里推荐一款软件:fiddler
fiddler有一个功能叫做AutoResponder,它可以将一个地址指向另一个地址。之所以用这个软件,是因为它能匹配正则,非常方便。
上一节说到,webpack热加载用到了这几类文件
和.html以及其他.js文件一起,我们就可以把这几个类型的文件挂载上去,达到一个远程热更新的效果,设置如下:
假设:
线上地址:http://192.168.9.189
本地服务器地址:http://localhost:8080/
为了照顾到接口,不能用*全匹配(上图fiddler里最后一条灰色的)
| request matches | respond with |
|---|---|
| EXACT:http://192.168.9.189/index.html | http://localhost:8080/ |
| EXACT:http://192.168.9.189/__webpack_hmr | http://localhost:8080/__webpack_hmr |
| regex:http://192.168.9.189/([^.]+).js$ | http://localhost:8080/$1.js |
| regex:http://192.168.9.189/(.+).hot-update.json$ | http://localhost:8080/$1.hot-update.json |
| regex:http://192.168.9.189/(.+).hot-update.js$ | http://localhost:8080/$1.hot-update.js |
打开debugger就能发现vue的devtools出来了
wap端-技巧分享
手机上调试也没那么麻烦。和电脑一样在同一个局域网下,输入地址就能看到效果了。最近在做一个wap端的vue项目,这里谈谈一些自己用到的一些小技巧。
手机加载慢的时候,同样可以使用http代理转发到主机上,再访问速度就比较快了
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# webpack
# vue
# 调试
# vue.js
# 通过实例解析vuejs如何实现调试代码
# Vue3.x源码调试的实现方法
# Vue程序调试的方法
# vue调试工具vue-devtools安装及使用方法
# webstrom Debug 调试vue项目的方法步骤
# 浅析Visual Studio Code断点调试Vue
# Vue调试神器vue-devtools安装方法
# Vue DevTools调试工具的使用
# 如何使用Webstorm和Chrome来调试Vue项目
# 加载
# 的是
# 就能
# 线上
# 是因为
# 可以用
# 这几个
# 机上
# 源代码
# 这是
# 器上
# 在这里
# 很好
# 我不
# 出了
# 也没
# 在此
# 就不
# 推荐使用
# 说到
相关文章:
免费制作小说封面的网站有哪些,怎么接网站批量的封面单?
微课制作网站有哪些,微课网怎么进?
如何在腾讯云服务器快速搭建个人网站?
深圳网站制作的公司有哪些,dido官方网站?
活动邀请函制作网站有哪些,活动邀请函文案?
网站制作和推广的区别,想自己建立一个网站做推广,有什么快捷方法马上做好一个网站?
如何做静态网页,sublimetext3.0制作静态网页?
零服务器AI建站解决方案:快速部署与云端平台低成本实践
弹幕视频网站制作教程下载,弹幕视频网站是什么意思?
香港服务器网站推广:SEO优化与外贸独立站搭建策略
如何获取免费开源的自助建站系统源码?
如何通过二级域名建站提升品牌影响力?
专业网站建设制作报价,网页设计制作要考什么证?
宝塔面板创建网站无法访问?如何快速排查修复?
长沙企业网站制作哪家好,长沙水业集团官方网站?
c# 在高并发场景下,委托和接口调用的性能对比
如何通过商城免费建站系统源码自定义网站主题?
如何选择服务器才能高效搭建专属网站?
建站之星微信建站一键生成小程序+多端营销系统
如何用手机制作网站和网页,手机移动端的网站能制作成中英双语的吗?
如何用IIS7快速搭建并优化网站站点?
百度网页制作网站有哪些,谁能告诉我百度网站是怎么联系?
标准网站视频模板制作软件,现在有哪个网站的视频编辑素材最齐全的,背景音乐、音效等?
php条件判断怎么写_ifelse和switchcase的使用区别【对比】
如何快速查询域名建站关键信息?
Avalonia如何实现跨窗口通信 Avalonia窗口间数据传递
网站企业制作流程,用什么语言做企业网站比较好?
如何用低价快速搭建高质量网站?
如何通过免费商城建站系统源码自定义网站主题与功能?
,交易猫的商品怎么发布到网站上去?
制作网站建设的公司有哪些,网站建设比较好的公司都有哪些?
学校为何禁止电信移动建设网站?
建站之星后台密码遗忘或太弱?如何重置与强化?
网站微信制作软件,如何制作微信链接?
如何在Tomcat中配置并部署网站项目?
高端智能建站公司优选:品牌定制与SEO优化一站式服务
长沙做网站要多少钱,长沙国安网络怎么样?
品牌网站制作公司有哪些,买正品品牌一般去哪个网站买?
微信网站制作公司有哪些,民生银行办理公司开户怎么在微信网页上查询进度?
如何在IIS中新建站点并配置端口与物理路径?
如何在企业微信快速生成手机电脑官网?
h5网站制作工具有哪些,h5页面制作工具有哪些?
免费的流程图制作网站有哪些,2025年教师初级职称申报网上流程?
建站ABC备案流程中有哪些关键注意事项?
如何通过西部建站助手安装IIS服务器?
jQuery 常见小例汇总
如何在阿里云通过域名搭建网站?
如何选择CMS系统实现快速建站与SEO优化?
如何通过建站之星自助学习解决操作问题?
海南网站制作公司有哪些,海口网是哪家的?
*请认真填写需求信息,我们会在24小时内与您取得联系。