代码调试(一):认识 Debug 模式
在开发过程中,Bug 是我们最好的朋友(也是最可恶的敌人)。Debug 模式 是 ArenaPro 提供给你的最强大的“侦探工具”,它能帮你掀开代码的“引擎盖”,看清楚内部到底发生了什么,从而快速定位并解决问题。
为什么需要 Debug 模式?
默认情况下,当你构建项目时,ArenaPro 会对代码进行压缩和混淆。这就像是为了让汽车跑得更快而把它封装在一个光滑的、无法打开的外壳里。这样做的好处是代码体积小、运行效率高,适合正式发布。
但当车子出故障时,这个打不开的外壳就成了噩梦。
- 生产模式 (Debug 关闭):代码被压缩成一行天书,变量名变成了
a
,b
,c
。如果报错,你很难知道是哪一行源码出了问题。 - Debug 模式 (Debug 开启):代码保持着你编写时的样子,保留了所有的空格、换行和变量名。如果报错,它会精确地告诉你:“嘿,你写的第 52 行
playerScore
这个变量出错了!”
模式 | 代码特点 | 优点 | 缺点 |
---|---|---|---|
生产模式 | 压缩、混淆、不可读 | 运行效率高、安全 | 难以调试 |
Debug 模式 | 保持原样、完全可读 | 易于调试 | 运行效率低、不安全 |
两种工作流程的区别可以总结为下图:
如何开启 Debug 模式?
开启 Debug 模式非常简单,只需一步配置:
- 打开项目根目录下的
dao3.config.json
文件。 - 找到
typescript
配置节,将development
字段设置为true
。
jsonc
// dao3.config.json
{
"ArenaPro": {
"file": {
"typescript": {
// "server" 和 "client" 分别控制服务端和客户端
"server": {
"development": true // true: 开启服务端 Debug 模式
},
"client": {
"development": true // true: 开启客户端 Debug 模式
}
}
}
}
}
信息
💡 重要提示 修改配置后,必须重新构建项目 (Alt + Q
),新的模式才会生效。
一个典型的调试工作流
假设你在游戏中发现了一个 Bug,可以按照以下流程来解决它:
- 开启 Debug 模式:修改
dao3.config.json
并保存。 - 重新构建:按下
Alt + Q
,将可读的代码上传到地图。 - 复现 Bug:进入游戏,操作并触发这个 Bug。
- 查看控制台:打开游戏控制台,此时你会看到一条非常详细的报错信息,通常会精确到源码的文件名和行号。
- 定位并修复:根据错误信息,回到 VS Code 中修改你的 TypeScript 源码。
- 关闭 Debug 模式:Bug 修复后,记得将
development
改回false
,再构建一次用于最终测试或发布。
常见问题 (Q&A)
Q: 我应该一直开启 Debug 模式吗?
A: 不。Debug 模式仅用于开发和调试阶段。因为它生成的代码体积大、未优化,会影响游戏性能。请在发布游戏前务必将其关闭。
Q: developmentAll
这个配置是做什么的?
A: 这是一个快捷开关。如果你将 developmentAll
设置为 true
,它会强制同时开启服务端和客户端的 Debug 模式,忽略 server
和 client
下的单独设置。通常情况下,你不需要使用它。
Q: 我可以直接修改 dist
文件夹里编译后的 JS 文件来调试吗?
A: 强烈不建议。你应该始终修改 *.ts
源码,然后通过构建流程来更新代码。直接修改编译产物会导致源码和运行代码不一致,造成更大的混乱。
现在,你已经对这两种模式有了基本的了解。在接下来的章节中,我们将深入探讨如何利用这些模式进行高效的开发和调试。
上一篇:返回上一章:基础教程
下一篇:使用 HMR 实现代码热更新