一直想调试下Creator的主进程,我们知道Creator是基于Electron开发的,首先我自己基于开发了一个Electron桌面应用,debug构建后的桌面应用
发现目录结构这样子
自己的项目结构
可以看到除了app.asar,剩下的都是Electron的东西。
想必同样也遵守Electron的一些调试规则,那么我们就尝试这样启动调试Creator
/Applications/CocosCreator_V2.0.1.app/Contents/MacOS/CocosCreator
--inspect-brk=5858
不出所料,果真看到了我想要的东西
Creator的编辑器代码结构基本就是这样子
image.png
简单浏览下代码结构,发现ipc.js中的一些消息,刚好发现一个“app:open-project”消息
debug一下看看什么情况,打开项目的时候,首先进行了检查项目
生成一些必要的目录之类的,之后,调用了Editor.App.runEditor()
重点就在这里面,继续调试,发现来到这里
image.png
组装了一些参数,然后调用了一个t函数,让我们先看看参数吧
接下来追踪到t函数瞅瞅
哦原来如此,调用了node的child_process,而opts.file和opts.args正好是上边的2个参数,紧接着,Creator就正式打开了项目,没有办法继续追踪下去了。
以上部分是dashboard部分的代码,但是我想看编辑器的代码怎么办呢?
查阅文档,我们发现Creator是支持命令行编译项目的,so。。。借题发挥
执行下命令,同样带上inspect参数
/Applications/CocosCreator_V2.0.1.app/Contents/MacOS/CocosCreator
--path /Users/xyf/Documents/project/CocosCreatorPlugins-Buy
--inspect-brk=5858
直接打开了项目,然后,我们看到目录结构是这样子的,好吧,很开心,很皮
image.png
一直想调试插件的main.js,哈哈,今天可让我逮着了
image.png
美滋滋的感觉
image.png
其他收获
window.js意外收获划重点
第一行下断点
/Applications/CocosCreator_V2.0.1.app/Contents/MacOS/CocosCreator --path /Users/xyf/Documents/project/CocosCreatorPlugins-Buy --inspect-brk=5858
运行第一行不下断点
/Applications/CocosCreator_V2.0.1.app/Contents/MacOS/CocosCreator --path /Users/xyf/Documents/project/CocosCreatorPlugins-Buy --inspect=5858
网友评论