我们相信:世界是美好的,你是我也是。平行空间的世界里面,不同版本的生活也在继续...

对于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,请先查看下面这篇文章:

设置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的文章,请点击这边查看:

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

 【福利】 腾讯云最新爆款活动!1核2G云服务器首年50元!

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

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