用途:在 Salesforce B2C Commerce 实例上调试服务端脚本,支持在 SFRA 控制器、hook、作业和自定义 API 中设置断点、单步执行代码、检查变量。
主要能力:优先推荐 MCP 调试(debug_control 恢复/单步,debug_inspect 读取调用栈与变量,debug_evaluate 求值表达式)。b2c debug 提供面向 IDE 的 Debug Adapter Protocol(DAP)调试适配器;终端或无头场景下,b2c debug cli 提供交互式 REPL 和 JSONL 的 --rpc 模式。
使用方式:
- 交互调试:b2c debug cli,可用 --cartridge-path ./cartridges 指定源码映射目录,--client-id my-session 支持并发会话。
- REPL 命令:break Cart.js:42、break Checkout.js:100 if basket.totalGrossPrice > 100、breakpoints、delete 1;停止后用 stack、vars、members、eval 检查状态;用 continue、step、stepin、stepout 控制执行;用 threads、thread、frame 管理线程与栈帧。
- RPC 模式:b2c debug cli --rpc,stdin/stdout 上以 JSONL 收发命令与响应,支持 set_breakpoints、list_breakpoints、continue、step_over、step_into、step_out、get_stack、get_variables、evaluate、list_threads、select_thread、select_frame。
- DAP 模式:b2c debug,通过 stdio 启动调试适配器,供 VS Code 等 IDE 启动配置使用。
前置条件:需要一个具有 WebDAV_Manage_Customization 权限的 BM 用户的 Basic Auth 凭据(用户名及账户密码,或 WebDAV File Access 与 UX Studio 访问密钥)。
配置与认证:CLI 从环境变量(含项目 .env)、项目本地或共享 dw.json 及配置插件解析目标实例与调试器凭据,不搜索父目录;package.json 仅提供非敏感默认值,~/.mobify 提供 MRT 凭据而非调试器凭据。--server、--username、--password 等参数通常无需传入,仅在覆盖自动检测值时使用。可运行 b2c setup inspect 查看解析后的配置及来源(--json 供脚本使用,默认屏蔽密钥)。若 b2c 未全局安装,可用 npx @salesforce/b2c-cli 替代,例如 npx @salesforce/b2c-cli debug cli。MCP 调试时,若服务器可能在项目外启动,应向 debug_start_session 传入 projectDirectory;可通过 configPath 选择其他 dw.json 格式文件,instanceName 选择命名实例;cartridgeDirectory 仅在 cartridge 位于其他根目录时传入。
限制:CLI 不搜索父目录;package.json 不提供调试器凭据;MCP 服务器内部管理其 SDAPI 客户端身份,调用方无需传调试器客户端 ID。更完整的用法与排错参见相关技能(b2c-logs、b2c-code、b2c-config)。