为什么浏览器断点调试会经常出现无法解析某个变量的情况

232 天前
 bhbhxy

用的是 Edge 浏览器,鼠标选中this.active,没有任何解析值显示,this也被解析成undefined

将其添加监视,则出现

实际运行中是没有问题的,能通过控制台打印出来,但是为什么到了调试的时候经常会出现无法解析的问题, 是浏览器还是打包工具造成的,打包工具用的webpackeval-source-map作为开发模式的打包选项, 将打包选项改为eval能看到解析值,但源码又被混淆了,请问这种情况怎么解决

528 次点击
所在节点    前端开发
3 条回复
DOLLOR
232 天前
其实原因你自己已经说出来了,断点调试的时候,浏览器指认转译后的变量名,比如 this 已经被转译成_this $this 这样,通过 source-map 的原变量名,当然就调查不出它的值了。
一般我开发的时候,会关掉转译功能,这时浏览器直接运行转译前的代码,就能更精准地调试源码。打包上线之前再重新开启。
murmur
232 天前
这个就是 sourcemap 的痛苦,如果打到 this.active 上是能解析到 this 的,但是不是这一行,换个作用域就不行了
bhbhxy
232 天前
@DOLLOR 请问这个转译功能怎么关掉

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/975542

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX