对于es6版本的electron调试,总是充满了复杂性和不确定性。那么,对于chrome:inspect调试方案来说,基于es6electron-vue项目,其实也是可以调试的。其要点就两个:inspect-brkinlinesourcemap。如果您掌握了这两点,那么,就掌握了全部的核心秘密。否则,您可能还是不能使用本文中的chrome:inspect方案,来调试electron-vue项目。

如何利用 chrome:inspect 调试基于es6的electron-vue项目? - chrome-inspect-electron-vue
如何利用 chrome:inspect 调试基于es6的electron-vue项目?(图4-1)

当然,本文中的方案也并不仅仅适用于electron-vue。基于编译才能使用的各种electron项目方案,都是差不多的思路。记住要点:inspect-brkinlinesourcemap

测试环境:macelectron-vue

准备chrome:inspect

如果您还不知道如何使用chrome:inspect,请先查看下面这篇文章:

设置inspect-brk

electron-vue的项目中,默认的参数都是inspect=5858。对于vscode是非常合适的,但是对于chrome:inspect确非常的不合适。所以,需要对这个参数进行修改。

.electron-vue/dev-runner.js,第118行,

--inspect=5858

修改为:

--inspect-brk=5858

如何利用 chrome:inspect 调试基于es6的electron-vue项目? - inspect-brk
如何利用 chrome:inspect 调试基于es6的electron-vue项目?(图4-2)

设置sourcemap

electron-vue的项目,实际上使用webpack包装的babel,继而完成的es6的代码转化。而webpack有七种设置sourcemap的方案,.babelrc有三种设置sourcemap的方案。这一共十种sourcemap方案种,经过苏南大叔的尝试,只有三种方式,是可以和chrome:inspect协同工作的。当然,您如何尝试出了其它的搭配组合,欢迎您留言告知。

下面分别叙述这三种方式,任何一种都是生效的,仅仅使用其中一种即可。

方案一和二:设置webpack.config.js

对于electron-vue主进程调试来说,这个文件就是:

.electron-vue/webpack.main.config.js

增加的代码就是:

devtool:`inline-source-map`,

或者:

devtool:`eval-source-map`,

如何利用 chrome:inspect 调试基于es6的electron-vue项目? - webpack-main-config
如何利用 chrome:inspect 调试基于es6的electron-vue项目?(图4-3)

方案三:设置.babelrc

electron-vue项目中,.babelrc定义了三种环境,分别是main/renderer/web。对于本文的操作目标来说,需要把mainrenderer都设置sourcemap。按理说就设置一个main即可,但是实践中,却发现必须同时设置renderer

.babelrc,增加的代码如下:

"sourceMaps":"inline",
"retainLines":true

如何利用 chrome:inspect 调试基于es6的electron-vue项目? - babelrc
如何利用 chrome:inspect 调试基于es6的electron-vue项目?(图4-4)

调试过程

调试的过程就是:先npm run dev,然后chrome:inspect,加载源码,设置断点,大概思路就是这样。如果,您没有被断点中的话,请检查sourcemap,肯定是哪里设置的不对。并不是生成sourcemap就行,必须是inlinesourcemap才可以。其它的sourcemap类型,目前不能被检测到,原因未知。

相关链接

总结

到目前为止,electron-vue的单步调试问题,这个electron历史最大谜团,算是较完美地解决收工了。并不排除在今后,苏南大叔再补充其它方案的可能性。但是,目前的这些N多调试方案中,相信总是有一款适合你的。对吧?

更多的electron的文章,请点击这边查看:

如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留链接信息。

 【源码】本文代码片段及相关软件,请点此获取

 【绝密】秘籍文章入口,仅传授于有缘之人   electron

本站的忠实读者小伙伴,正在阅读下面这些文章:

本站采用创作共用版权协议, 要求署名、非商业用途和相同方式共享。
转载本站内容必须也遵循“署名-非商业用途-相同方式共享”的创作共用协议。
未经许可,规模化镜像抄袭本站内容的行为,将会根据有关法律法规进行维权。
程序如此灵动~》下所有原创文章,如被用于商业用途,请您按规定支付稿费。

苏南大叔需要你的支持

感谢您的打赏,让我更有动力,将更多精彩教程文章,呈现给大家!谢谢!