Skip to content

代码调试(一):认识 Debug 模式

在开发过程中,Bug 是我们最好的朋友(也是最可恶的敌人)。Debug 模式 是 ArenaPro 提供给你的最强大的“侦探工具”,它能帮你掀开代码的“引擎盖”,看清楚内部到底发生了什么,从而快速定位并解决问题。

为什么需要 Debug 模式?

默认情况下,当你构建项目时,ArenaPro 会对代码进行压缩和混淆。这就像是为了让汽车跑得更快而把它封装在一个光滑的、无法打开的外壳里。这样做的好处是代码体积小、运行效率高,适合正式发布。

但当车子出故障时,这个打不开的外壳就成了噩梦。

  • 生产模式 (Debug 关闭):代码被压缩成一行天书,变量名变成了a, b, c。如果报错,你很难知道是哪一行源码出了问题。
  • Debug 模式 (Debug 开启):代码保持着你编写时的样子,保留了所有的空格、换行和变量名。如果报错,它会精确地告诉你:“嘿,你写的第 52 行 playerScore 这个变量出错了!”
模式代码特点优点缺点
生产模式压缩、混淆、不可读运行效率高、安全难以调试
Debug 模式保持原样、完全可读易于调试运行效率低、不安全

两种工作流程的区别可以总结为下图:

如何开启 Debug 模式?

开启 Debug 模式非常简单,只需一步配置:

  1. 打开项目根目录下的 dao3.config.json 文件。
  2. 找到 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,可以按照以下流程来解决它:

  1. 开启 Debug 模式:修改 dao3.config.json 并保存。
  2. 重新构建:按下 Alt + Q,将可读的代码上传到地图。
  3. 复现 Bug:进入游戏,操作并触发这个 Bug。
  4. 查看控制台:打开游戏控制台,此时你会看到一条非常详细的报错信息,通常会精确到源码的文件名和行号。
  5. 定位并修复:根据错误信息,回到 VS Code 中修改你的 TypeScript 源码。
  6. 关闭 Debug 模式:Bug 修复后,记得将 development 改回 false,再构建一次用于最终测试或发布。

常见问题 (Q&A)

Q: 我应该一直开启 Debug 模式吗?

A: 不。Debug 模式仅用于开发和调试阶段。因为它生成的代码体积大、未优化,会影响游戏性能。请在发布游戏前务必将其关闭

Q: developmentAll 这个配置是做什么的?

A: 这是一个快捷开关。如果你将 developmentAll 设置为 true,它会强制同时开启服务端和客户端的 Debug 模式,忽略 serverclient 下的单独设置。通常情况下,你不需要使用它。

Q: 我可以直接修改 dist 文件夹里编译后的 JS 文件来调试吗?

A: 强烈不建议。你应该始终修改 *.ts 源码,然后通过构建流程来更新代码。直接修改编译产物会导致源码和运行代码不一致,造成更大的混乱。

现在,你已经对这两种模式有了基本的了解。在接下来的章节中,我们将深入探讨如何利用这些模式进行高效的开发和调试。


上一篇:返回上一章:基础教程

下一篇:使用 HMR 实现代码热更新

常见问题