仓颉项目调试配置与多文件场景下的问题解析
1. 调试配置指南
-
在 VS Code 中配置好仓颉开发工具链后,只需按下
F5
或Fn + F5
即可启动调试。 -
在 CodeArts IDE for Cangjie 中,需先通过右上角的 编辑配置 -> 新增配置项 -> 选择 Cangjie (cjdb) Debug -> 选择 launch 模式 -> 点击 确认。配置完成后,同样可通过按下 F5 或 Fn + F5 开始调试。
2. 多文件或多 Package 场景下右键“构建并调试文件”的问题
在使用 右键菜单 → 仓颉:构建并调试文件 功能时,如果项目包含多个文件或多个 package,调试可能会失败。根本原因在于该功能依赖于 launch.json
文件中的配置方式(在 VS Code 中位于 .vscode
目录下,在 CodeArts IDE for Cangjie 中则位于 .arts
目录下)。
当首次执行调试操作时,两种开发环境都会尝试自动生成一个调试配置(若不存在 launch.json
则自动创建),但它们生成的配置字段存在差异,从而导致行为不一致,甚至调试失败。
造成这种差异的关键字段是:buildBeforeLaunch
和 preLaunchTask
。
- 使用 buildBeforeLaunch: true 时:
此字段通常由调试器(如 “type”: “cangjieDebug”)隐式处理,表示调试器会自动触发默认的构建流程(例如调用项目管理工具的编译命令)。此时 无需手动配置tasks.json
,因为构建逻辑可能已经集成到调试器或项目本身的默认行为中(例如 Cangjie 的 CJPM 工具提供统一编译入口)。 - 启用 preLaunchTask 字段时:
需要在 tasks.json 中显式定义对应的任务。preLaunchTask 的作用是声明调试前需执行的自动化任务(如编译、构建),而该任务的具体实现(例如调用编译器的命令或参数)必须通过 tasks.json 明确定义。例如,若 preLaunchTask 指定为"cangjieDebug build task - UavFDiQoBO"
(随机生成的任务名),则需在 tasks.json 中定义该任务的完整执行步骤。
因此,在多文件或多 package 的复杂项目结构中,若未正确配置上述字段,可能导致构建失败,进而影响调试过程。