永发信息网

如何在WebStorm 2017下调试Vue.js + webpack

答案:2  悬赏:0  手机版
解决时间 2021-11-15 21:20
如何在WebStorm 2017下调试Vue.js + webpack
最佳答案
有人觉得vue项目难调试,是因为用了webpack。所有代码揉在了一起,还加了很多框架代码,根本不知道怎么下手。所以vue+webpack调试要从webpack入手。
1.我们先从一般情况开始说。
-sourcemap
webpack配置提供了devtool这个选项,如果设置为 ‘#source-map’,则可以生成.map文件,在chrome浏览器中调试的时候可以显示源代码。
devtool: '#source-map'
2.然而这个设置实际上没这么简单。webpack官方给出了7个配置项供选择:
01.devtool介绍
这里不同的配置有些不同的效果,比如是否保留注释、保留行信息等,具体每一条什么意思这里不详解释,有兴趣的童鞋可以参考这篇文章
官方默认的是用 ‘#cheap-module-eval-source-map’
devtool: '#cheap-module-eval-source-map'
设置好之后,在vue项目调试的时候,代码里面标注debugger的时候就能看到对应的代码了,非常方便。
02.debugger
或者,直接找到对应的文件。在chrome用 ’ctrl(command) + p‘,输入文件名,可以找到对应的源代码。
command+p
打断点:
断点
需要注意的是,这里断点会打在下一行。同时一行代码运行在它的下一行才算执行。
03.-vue-cli
vue家的项目脚手架,推荐使用。vue-cli老家在这里
vue-cli可以帮我们自动搭建项目,首先npm全局安装
npm install -g vue-cli
然后创建一个新的项目
vue init webpack my-project
一路回车,搞定。(更多配置项请参考上面给出的vue-cli链接)
这里从网上下载了一个带webpack的vue项目(跑之前记得npm install一下)
04.vue-cli webpack
从bulid文件夹里面就大概能看出:
•webpack.dev.conf: 开发模式用
•webpack.prod.conf: 生产模式用
其中,开发模式提供了devtool为’#cheap-module-eval-source-map’,生产模式根据config文件夹下的productionSourceMap变量控制是否使用。
若为true,则devtool为’#source-map’
其他使用方法一致。非常方便。
3.线上调试
平时开发的时候,我们用webpack的热加载,可以省去挂载调试的步骤,非常方便。但是发布后部署到服务器上,就失去了这个本地优势。
如果使用挂载文件方式会比较麻烦。由于webpack打出来的文件有版本号这些信息,而且发布一个包看代码量可能需要等待不等,这个方案不实际。但是如果挂载的是热加载到端口下的文件的话,这个问题就很好办了。
-热加载
在此之前,先来分析一下webpack的热加载原理。
对项目抓包可以发现这么一个文件:__webpack_hmr
__webpack_hmr
这是webpack热加载的服务器推送事件,eventsource类型,功能和websocket有点类似。大致作用是建立一个不会停止的stream流链接,服务器发送更新数据回来append到流的末端,前端读取最新append的数据,然后动态的更新页面上的东西。
接下来我们观察下上文提到的更新数据有哪些。随便更新一个文件,触发热加载,再抓个包,发现有两个.hot-update.json和一个.hot-update.js文件
热加载更新文件
这些具体做了些啥我不知道,这里就不深究了。应该是根据json里面的数据,达到一个准确更新的效果。
所以热更新其实就是监听服务器上的数据,有修改的话服务器发送数据过来,前端把数据拿来后替换到页面上这么一个过程。
-AutoResponder
接下来谈谈线上挂载测试,这里推荐一款软件:fiddler
fiddler有一个功能叫做AutoResponder,它可以将一个地址指向另一个地址。之所以用这个软件,是因为它能匹配正则,非常方便。
AutoResponder
全部回答
有人觉得vue项目难调试,是因为用了webpack。所有代码揉在了一起,还加了很多框架代码,根本不知道怎么下手。所以vue+webpack调试要从webpack入手。我们先从一般情况开始说。
-sourcemap
webpack配置提供了devtool这个选项,如果设置为 ‘#source-map’,则可以生成.map文件,在chrome浏览器中调试的时候可以显示源代码。
devtool: '#source-map'
然而这个设置实际上没这么简单。webpack官方给出了7个配置项供选择: 戳这里
devtool介绍
这里不同的配置有些不同的效果,比如是否保留注释、保留行信息等,具体每一条什么意思这里不详解释,有兴趣的童鞋可以参考这篇文章
官方默认的是用 ‘#cheap-module-eval-source-map’
devtool: '#cheap-module-eval-source-map'
设置好之后,在vue项目调试的时候,代码里面标注debugger的时候就能看到对应的代码了,非常方便。
debugger
或者,直接找到对应的文件。在chrome用 ’ctrl(command) + p‘,输入文件名,可以找到对应的源代码。
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一下)
vue-cli webpack
从bulid文件夹里面就大概能看出:
•webpack.dev.conf: 开发模式用
•webpack.prod.conf: 生产模式用
其中,开发模式提供了devtool为’#cheap-module-eval-source-map’,生产模式根据config文件夹下的productionSourceMap变量控制是否使用。
若为true,则devtool为’#source-map’
其他使用方法一致。非常方便。
线上调试
平时开发的时候,我们用webpack的热加载,可以省去挂载调试的步骤,非常方便。但是发布后部署到服务器上,就失去了这个本地优势。
如果使用挂载文件方式会比较麻烦。由于webpack打出来的文件有版本号这些信息,而且发布一个包看代码量可能需要等待不等,这个方案不实际。但是如果挂载的是热加载到端口下的文件的话,这个问题就很好办了。
-热加载
在此之前,先来分析一下webpack的热加载原理。
对项目抓包可以发现这么一个文件:__webpack_hmr
__webpack_hmr
这是webpack热加载的服务器推送事件,eventsource类型,功能和websocket有点类似。大致作用是建立一个不会停止的stream流链接,服务器发送更新数据回来append到流的末端,前端读取最新append的数据,然后动态的更新页面上的东西。
接下来我们观察下上文提到的更新数据有哪些。随便更新一个文件,触发热加载,再抓个包,发现有两个.hot-update.json和一个.hot-update.js文件
热加载更新文件
这些具体做了些啥我不知道,这里就不深究了。应该是根据json里面的数据,达到一个准确更新的效果。
所以热更新其实就是监听服务器上的数据,有修改的话服务器发送数据过来,前端把数据拿来后替换到页面上这么一个过程。
-AutoResponder
接下来谈谈线上挂载测试,这里推荐一款软件:fiddler
fiddler有一个功能叫做AutoResponder,它可以将一个地址指向另一个地址。之所以用这个软件,是因为它能匹配正则,非常方便。
AutoResponder
上一节说到,webpack热加载用到了这几类文件
•__webpack_hmr
•xxxxxxxxxxx.hot-update.json
•xxxxxxxxxxx.hot-update.js
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
我是2o多岁的小伙喜欢上一位中年少妇:很多人
求介绍北京朝阳城管公务员编制的待遇、工作内
我是本来理科实验班,后转了文科但感觉没兴趣
19·37÷5.7循环小数竖式
这个中介可信吗?
求一奸钟情的 TXT小说~
为什么要在大厦顶安装避雷针?
青山绿山就是金山银山
连鱼料怎么配
25T汽车吊 水平距离是13.7m 能吊多少吨
请教一下,这个链子扣怎么拆
牛不吃草打什么针
战士们都笑了填课文
军训被罚赤脚有什么感受?
狗狗总是憋大便憋一天,坚决不大在笼子里,但
推荐资讯
一路x西资源有没有
一个正方形鱼塘四周的小路长是60米鱼塘的边长
国内旅游5天怎么规划
黑樱桃品种有什么特点
天天吃峰糖有什么好处
东方红lx900与lx904拖拉机后桥有什么不同
我家的配置现在什么水平 怎么设置能让他性能
绽开的绽是什么意思?(只要绽的意思)
客厅四面有门如何装修
路标 怎么区分直行还是单行线? 方块形的牌子
魔兽世界wow凯帕琥珀哪里多有什么用怎么获得
小说中名字是徐洛的男主角书名是什么
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?