敞开成长之旅!这是我参加「日新计划 12 月更文应战」的第32天,点击检查活动概况
又见插件主进程调试
编写过cocos creator插件的小伙伴,相信都会遇到一个比较头疼的问题,怎么调试自己编写的主进程代码。
简略的逻辑,你能够console.log完结调试工作,但是断点调试,是开发过程中的硬性需求,今天要介绍的便是在vscode里边编写调试代码。
怎么运用
- 下载CocosCreator插件:DebugMainProcess,并启用该插件。
- 装置vscode插件:cc-plugin-debugger。
- 运用vscode翻开插件项目,launch.json中新建一个configuration
- 运转configuration,在vscode中找到插件主进程的
js代码
,设置断点,当编辑器运转到该处时,vscode就会自动断下。
调试计划之一:Chrome Devtools
之前我也研究过,怎么在Chrome中调试,其原理便是从命令行以调试形式(--inpect
)发动cocos creator,然后在Chrome中监听端口,进行debug。
为什么Chrome能够调试?
这一切的背面,都是调试协议的功劳。
chrome devtools只是调试的前端,咱们在里边的断点等操作,终究都是经过调试协议告知了node,当node执行到断点时,相同也会经过调试协议告知外部程序,感兴趣的能够了解下Chrome Devtools Protocol,简称CDP。
vscode的能够调试c++、js、java、c#等等言语,这么强壮的调试功能背面,都离不开调试协议。
调试计划之二:Vscode
运用Chrome Devtools调试有许多不方便的地方:
- 有必要命令行发动,并敞开inspect选项。关于习惯dashboard翻开项目,比较费事,并且需要输入断点选项,也很费事。
- Chrome里边需要设置监听的inspect选项的端口
- 编写和调试代码,需要频繁的切换
跟着了解的深入,一个node程序,其实是存在一个调试server,用来和外部程序交互,而inspect
选项,其实便是翻开了这个debug protocol server。
换而言之,这个debug server只需要翻开就能调试node程序,当咱们发动一个node服务后,node允许咱们经过:
process._debugProcess(process id)
强制敞开调试形式,这样咱们就无须重新发动inspect
,就能直接调试现已被node加载的代码。
敞开调试server后,咱们还需要将调试工具连接到调试server,vscode对node的调试其实支撑的现已非常成熟了,在launch.json
中新建一个如下配置:
{
"type": "node",
"request": "attach",
"name": "CCMainProcessDebug",
"port": 9229,
"skipFiles": ["<node_internals>/**"]
}
然后咱们运转这个Configuration,vscode就会去连接本地端口为9229的debug server。
如果一切顺利,你就能够非常happy的debug了。
不足之处:
现在还没整理解怎么支撑sourcemap,所以现在还不能直接在ts代码中下断点,只能在js代码中下断点。
Creator检查主进程ID