1. 调试与测试
插件化手册
  • FH2 插件开发手册
    • 产品简介
    • 典型场景
    • 发版说明
    • 快速开始
      • 快速开始总览
      • 第一个插件
      • 后端插件
      • 全栈闭环
    • AI辅助开发
      • AI 开发 Skill
      • 安装与复验
      • 第一个工程
      • 真实需求示例:现场问题上报
      • 改造已有工程
      • 调试与交付
    • 开发指南
      • 开发指南
      • 基础概念
        • 基础概念总览
        • 什么是插件开发
        • 平台架构
        • 前端宿主、扩展点与能力
        • 后端运行时、入口与权限
        • 开发流程
        • 安全与隔离
        • 支持范围与问题反馈
      • 开发指南
        • 开发指南总览
        • 前端插件
          • 前端插件深度指南
          • 前端工程结构
          • 插件清单(fh2-plugin.json)
          • 入口与生命周期
          • 界面与状态
          • 多宿主插件
          • 跨宿主通信服务
          • HTTP、WebSocket 与事件
          • 存储、Blob 与定时器
          • 工具链与本地调试页面
        • 后端插件
          • 后端开发深度指南
          • 后端插件的结构
          • 后端源清单 fh2-plugin.json
          • HTTP 接口处理函数
          • 消息订阅与事件处理函数
          • ctx 与能力注入
          • 数据存储与缓存
          • 流程编排
          • 触发方式
          • 连接外部系统
          • 流程编排练习(DAG)
        • 前后端协作
          • 前后端协作总览
          • 前后端共享契约
          • 端到端幂等
          • 事件、通知与状态
          • 统一错误模型
          • 链路标识与诊断日志
        • 完整练习
          • 环境准备
          • 第一个前端插件
          • 第一个后端插件
          • 第一个全栈插件
      • 能力总览
        • 能力地图
        • 能力可用性矩阵
        • 前端能力
          • 平台通用能力
            • 平台通用能力总览
            • 基础运行时:HTTP、事件、WebSocket 与存储
            • 导航、位置与通知
            • 弹窗、音频与剪贴板
            • 地图能力
            • 项目设备能力
            • WPMZ 与航线预览
            • 受控对象上传
          • 项目宿主
            • 项目宿主总览
            • 项目上下文
            • 项目侧边栏入口
            • 项目插件路由
            • 项目工作区
          • 消息宿主
            • 消息宿主总览
            • 消息告警弹层
            • 消息导航与通知
          • 计划库宿主
            • 计划库宿主总览
            • 计划库表单上下文
            • 计划库表单扩展
            • 校验、提交与 `biz_ext`
          • 驾驶舱
            • 驾驶舱插件能力总览
            • 驾驶舱扩展点
            • 上下文与遥测
            • 相机、检测与 AI
            • 场景几何与直播指针
            • 飞控、云台与任务
            • 驾驶舱平台事件
        • 后端能力
          • 后端能力地图
          • 后端能力总览
          • 配置、受管出网与集成连接
          • 事件与流程
          • 飞行任务与违停巡逻
          • 数据存储
          • 媒体与前端通知
          • 资源租约
          • 作业、目标轨迹与视频处理
      • 调试与测试
        • 调试与测试总览
        • 快速入门排错
        • 本地开发
        • Web IDE:打开工程与保存改动
        • 工作流编辑器:节点、接线与交付
        • 知识与 MCP:先判断需要哪一层事实
        • 前端本地调试
        • 后端运行时与流程调试
        • 模拟数据与测试数据
        • 集成测试与 E2E
        • 日志与链路追踪
        • 常见问题排查
      • 完整示例
        • 示例与案例总览
        • 项目侧边栏与工作区
        • 消息告警卡片
        • 计划表单任务清单
        • 驾驶舱动作与左侧面板
        • 最小后端插件
        • 最小全栈插件
        • 多宿主插件实战
        • 事故快处
        • 交通抓拍
        • 违停巡逻完整案例
      • 构建发布与安全
        • 构建、发布与安全
        • 质量门禁
        • 行业包构建与打包
        • 能力版本发布
        • 安装、升级与回滚
        • 安全基线
      • API参考
        • API 参考总览
        • 前端
          • 前端 API 参考
          • 前端插件清单结构
          • 前端 SDK API
          • 前端扩展点目录
          • 前端能力目录
          • 前端平台事件目录
          • 跨宿主通信服务 API
          • 工具链命令行参考(`fh2-plugin`)
        • 后端
          • 后端 API 参考
          • 后端插件源清单
          • 后端 HTTP 接口参考
          • 后端事件消费参考
          • 后端脚本上下文(`ctx`)
          • 后端数据存储
          • 流程编排语言
          • 流程触发器参考
          • 后端能力目录
          • 后端 HTTP API
        • 共享契约
          • 共享契约参考
          • 类型与契约目录
          • 错误模型
          • 版本兼容性
      • 附录
        • 错误码
        • 术语表
        • 常见问题
  1. 调试与测试

快速入门排错

本页用于完整练习的逐层排错。短入门从第一个插件开始;通用故障见常见问题排查。原则:先看第一条报错,每一步只解决一个问题。

固定诊断序列#

先想清楚你在哪一层目录——能力工程的命令都在工作区根跑(有 package.json 和 packages.json 那层),单插件工程的命令在插件根跑(有 fh2-plugin.json 那层):
generate/validate/build/dev 是模板 package.json 里自带的脚本;tsc、test 不一定每个模板都配了,缺了就跳过,别把"Missing script"当成原始故障。哪一步开始失败,问题就在哪一层。构建失败时不要打开本地调试页面——产物都没有,看了也白看。

逐层检查表#

阶段查什么怎么处理
安装Node 版本、工具链获取与依赖配置是否完成对照环境准备;源码从 GitHub 仓库获取,不要猜包名或用第三方转载的地址
生成清单改了但类型没更新重跑 pnpm run generate;不要手改 src/generated/
校验以第一条 validate 报错为准报错信息会给出文件和字段名,按提示改
构建入口引了 Vue / 界面引了入口Vue 组件只放 src/views/;入口只做逻辑
激活宿主 ID 对不对、权限有没有声明确认扩展点属于当前宿主;处理 capabilities.get() 返回 undefined
后端接口名、pluginId、权限用统一入口调用;核对清单 allowlist

清单里的典型错误#

源清单 fh2-plugin.json 里出现以下字段会被直接拒绝;它们属于前端构建产物,由 build 写入 dist/fh2-plugin.json:
字段原因
manifestVersion、engines、buildInfo构建产物专有,工具链在构建时写入
trusted、trustLevel、sandbox运行方式不是作者可声明的概念,插件无权自报

后端接口 404 / 报错#

先确认完整 dev 已启动。build / pack 只生成产物,不启动 HTTP 服务;本地 dev 才提供插件运行时与本地 HTTP 模拟器。首次业务调用推荐用全栈入门的 ctx.apiCall 受管通道,无需填写凭据。
以下无需令牌的回环辅助接口仅在本地调试页面和后端调试服务运行时可用;不要套用到部署环境:
现象处理
404工程没有 backend/ 目录,或启动时用了 --frontend-only;改用完整 pnpm run dev
连接被拒绝仅运行了 build / pack,或 dev 已停止;先启动服务,再按实际监听地址诊断
curl 鉴权失败直接调用需要插件网关提供的有效插件令牌;业务 API 的 PLUGIN_API_ORIGIN、服务选择和鉴权配置按目标环境接入说明设置,直接后端服务的 Bearer 凭据与插件令牌不可互换
BACKEND_DIST_MISSING先修复 build,再启动 dev
HANDLER_NOT_FOUND(本地)或返回 40006(真实后端)前端传的 handler 名与 handlers/ 下的文件路径不一致
返回 40006参数缺失或格式不对(契约错误),检查 input
返回 50301可能是暂时不可用、超时或认不出的脚本错误;平台不自动重发 HTTP 请求。先核对错误分类与写入结果,安全重试须复用稳定业务键

本地正常、真实环境不行#

本地调试页面验证模拟交互和调用,不能单独证明公共契约全部正确或真实环境可用。取得允许插件调试的 HTTP 私有化环境、登录及项目权限后,在教程工作区根运行已有预览脚本;FH2_URL 为获授权的完整 HTTP 项目页地址:
只替换本地前端,后端仍用目标环境已安装版本。启用本次 PAC,先在同一 origin 登录并进入项目,再打开调试面板、手填终端本次资源根、校验权限并同意后确认重载;链接不会自动填写来源。当前不支持 HTTPS / 证书路线,详细操作和清理见真实环境预览。

完成标志#

第一条报错已定位到某一层(安装 / 生成 / 校验 / 构建 / 激活 / 后端)。
generate、validate、build 通过;模板提供 tsc / test 时也通过,能力工程可单独进入前端插件目录检查类型。
本地调试页面中核心交互可复现。
停用插件后页面无残留(没有僵尸按钮、空面板)。
修改于 2026-10-26 15:55:47
上一页
调试与测试总览
下一页
本地开发
Built with