利用chrome:inspect调试es6 electron-vue项目
本文转载自:https://newsn.net/
对于es6
版本的electron
调试,总是充满了复杂性和不确定性。那么,对于chrome:inspect
调试方案来说,基于es6
的electron-vue
项目,其实也是可以调试的。其要点就两个:inspect-brk
和inline
的sourcemap
。如果您掌握了这两点,那么,就掌握了全部的核心秘密。否则,您可能还是不能使用本文中的chrome:inspect
方案,来调试electron-vue
项目。
当然,本文中的方案也并不仅仅适用于electron-vue
。基于编译才能使用的各种electron
项目,都是差不多的解决思路。记住要点:inspect-brk
和inline
的sourcemap
。
本文测试环境:mac
,electron-vue
。如果您还不知道如何使用chrome:inspect
,请先查看下面这篇文章:
设置inspect-brk
electron-vue
的项目中,默认的参数都是inspect=5858
。对于vscode
是非常合适的,但是对于chrome:inspect
确非常的不合适。所以,需要对这个参数进行修改。
.electron-vue/dev-runner.js
,第118行,
--inspect=5858
修改为:
--inspect-brk=5858
设置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`,
方案三:设置.babelrc
在electron-vue
项目中,.babelrc
定义了三种环境,分别是main
/renderer
/web
。对于本文的操作目标来说,需要把main
和renderer
都设置sourcemap
。按理说就设置一个main
即可,但是实践中,却发现必须同时设置renderer
。
.babelrc
,增加的代码如下:
"sourceMaps":"inline","retainLines":true
调试过程
调试的过程就是:先npm run dev
,然后chrome:inspect
,加载源码,设置断点,大概思路就是这样。如果,您没有被断点中的话,请检查sourcemap
,肯定是哪里设置的不对。并不是生成sourcemap
就行,必须是inline
的sourcemap
才可以。其它的sourcemap
类型,目前不能被检测到,原因未知。
总结
到目前为止,electron-vue
的单步调试问题,这个electron
历史最大谜团,算是较完美地解决收工了。并不排除在今后,苏南大叔再补充其它方案的可能性。但是,目前的这些N多调试方案中,相信总是有一款适合你的。对吧?
以上是 利用chrome:inspect调试es6 electron-vue项目 的全部内容, 来源链接: utcz.com/a/118988.html