利用chrome:inspect调试es6 electron-vue项目

本文转载自:https://newsn.net/

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

如何利用 chrome:inspect 调试基于es6的electron-vue项目?

当然,本文中的方案也并不仅仅适用于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项目?

设置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项目?

方案三:设置.babelrc

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

.babelrc,增加的代码如下:

"sourceMaps":"inline",

"retainLines":true

如何利用 chrome:inspect 调试基于es6的electron-vue项目?

调试过程

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

总结

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

以上是 利用chrome:inspect调试es6 electron-vue项目 的全部内容, 来源链接: utcz.com/a/118988.html

回到顶部