Microsoft Fabric 环境中的 DevServer

DevServer 是开发 Fabric 工作负荷时运行的本地 Web 服务器。 它在 localhost 上为前端(SPA)提供服务,并提供一小组 HTTP 终结点,Fabric 在开发过程中通过其检索您的产品和项清单。 与 DevGateway 结合使用时,Fabric 可以在 iFrame 中加载工作负荷 UI 并读取清单数据,而无需将任何内容发布到租户。

DevServer 的作用

  • 在 localhost 上通过 HTTP 承载负载前端(例如 http://localhost:60006),以便 Fabric 可以在 iFrame 中加载它。
  • 提供清单引用的静态资产(图标、本地化字符串、图像)。
  • 公开 Fabric 用于在开发期间读取清单的本地 JSON 终结点。
  • 在大多数设置中启用热重载,实现编辑刷新快速循环。

重要

DevServer 与 DevGateway 协同工作。 DevGateway 向 Fabric 注册本地工作负载实例,以便服务在您开发期间知道与 DevServer 端点进行通信。

Where Fabric 调用 DevServer

启用开发模式并启动 DevGateway 和 DevServer 时:

  • Fabric 通过工作负荷清单定义的前端终结点导航到前端(请参阅 工作负荷清单)。 在开发中,这通常指向由 DevServer 公开的 localhost URL。
  • Fabric 会查询 DevServer 的面向产品的元数据,以便为工作负荷呈现导航、磁贴和其他 UX。 这样就可以在 Product.json 和项清单上进行迭代,而无需重新生成和上传包。

DevServer 提供的本地终结点

确切路由可能因模板而异,但示例存储库公开了一小组可预测终结点:

  • GET/ - 返回 Web 应用(UI Fabric 加载到 iFrame 中)。
  • GET /manifests - 返回一个 JSON 数据包,用于聚合前端使用的产品清单和项目清单。 这反映了 Fabric 在发布时预期的结构(请参阅 产品清单项目清单)。
  • GET /assets/... - 提供清单引用的图标、图像和本地化字符串。

注释

  • CORS 和标头在示例 DevServer 中预配置,以便可以嵌入应用并与主机通信。
  • 上述路由名称遵循当前示例;如果项目对清单终结点使用不同的路径,请查阅模板的自述文件。

典型开发流

  1. 从示例存储库启动 DevServer,以在 localhost 上托管前端。
  2. 启动 DevGateway,将本地工作负荷注册到 Fabric。
  3. 打开 Fabric 工作区并启动负载入口点;Fabric 在 iFrame 中加载应用,并调用 DevServer 接口来读取清单数据。
  4. 编辑 UI 或清单文件并刷新;更改立即生效,无需重新打包。

有关如何启动每个过程,请参阅 入门教程安装指南

与已发布清单的关系

在生产环境中,工作负载的清单作为工作负荷 NuGet 包的一部分打包和上传(请参阅 清单概述)。 在开发过程中,DevServer 的本地终结点充当这些打包文件的轻量级替代品,以便您可以快速进行迭代:

  • 架构和规则与已发布清单相同。
  • DevServer 仅影响本地开发;它不会更改发布的工作原理。

故障排除提示

  • 如果 iFrame 显示空白页,请确认 DevServer 正在运行,清单中的前端终结点指向正确的 localhost URL。
  • 如果缺少图标或字符串,请检查 assets 路径,并确认 DevServer 是否正在提供 /assets 下的这些文件。
  • 如果 Fabric 找不到清单,请验证您的模板中是否存在 /manifests 路由并返回有效的 JSON。

另请参阅