SuperAPI AI 工具集

generating-ui-bundle-site

前端与建站

查看项目

更新于 10-16 10:15

技能介绍

用途

该技能用于为 Salesforce 上的 React UI Bundle 创建并配置 Digital Experience Site(数字体验站点)。当项目包含 uiBundles/*/src/ 目录,且任务涉及创建或配置站点基础设施时,应激活本技能。

React 站点与标准 LWR 站点不同:它们不需要 routes、views、theme layouts 或 branding sets。站点充当一个薄容器(appContainer: true),将渲染委托给由 appSpace 引用的 React UI bundle。

主要能力

生成运行 React 应用所需的最小站点基础设施,涉及以下元数据类型:

  • Network
  • CustomSite
  • DigitalExperienceConfig
  • DigitalExperienceBundle
  • sfdc_cms__site 内容类型

使用方式

技能按以下工作流执行:

第 1 步:解析全部必需属性

在生成任何元数据前,先解析以下五个属性,每个属性都有回退链,按顺序尝试直至找到值:

属性 格式 解析方式
siteName UpperCamelCase(如 MyCommunity) 询问用户或从上下文推导
siteUrlPathPrefix 全小写(如 mycommunity) 用户提供,或将 siteName 转为全小写且仅保留字母数字
appNamespace 字符串 sfdx-project.json 中的 namespace → sf data query -q "SELECT NamespacePrefix FROM Organization" --target-org ${usernameOrAlias} → 默认 c
appDevName 字符串 项目中的 UIBundle 元数据 → sf data query -q "SELECT DeveloperName FROM UIBundle" --target-org ${usernameOrAlias} → 默认使用 siteName
enableGuestAccess 布尔值 询问用户未认证访客是否可以访问站点 API → 默认 false

appNamespace 和 appDevName 用于将站点连接到正确的 React 应用。若设置错误,站点虽能部署但会显示空白页面,因此需从真实项目数据中解析。

第 2 步:创建项目结构

使用可用的 Salesforce 元数据 schema 和字段上下文,确保每个文件使用有效结构。按以下路径创建尚不存在的文件与目录:

元数据类型 路径
Network networks/{siteName}.network-meta.xml
CustomSite sites/{siteName}.site-meta.xml
DigitalExperienceConfig digitalExperienceConfigs/{siteName}1.digitalExperienceConfig-meta.xml
DigitalExperienceBundle digitalExperiences/site/{siteName}1/{siteName}1.digitalExperience-meta.xml
DigitalExperience (sfdc_cms__site) digitalExperiences/site/{siteName}1/sfdc_cms__site/{siteName}1/*

DigitalExperience 目录只包含 _meta.json 和 content.json。不要在 bundle 内创建除 sfdc_cms__site 以外的任何目录。

第 3 步:填充所有元数据字段

使用文档中的默认模板。{braces} 中的值为已解析的属性引用,用第 1 步得到的实际值替换。

元数据类型 模板引用
Network configure-metadata-network.md
CustomSite configure-metadata-custom-site.md
DigitalExperienceConfig configure-metadata-digital-experience-config.md
DigitalExperienceBundle configure-metadata-digital-experience-bundle.md
DigitalExperience (sfdc_cms__site) configure-metadata-digital-experience.md

URL 更新参见 update-site-urls.md。

执行说明:在第 3 步填充元数据字段前,必须完整读取每个 docs/*.md 文件的内容。使用平台的文件读取工具(如 read_file)完整加载这些文件,然后对 {braces} 中的占位符用第 1 步解析出的值进行替换。需加载的文件:

  • docs/configure-metadata-network.md
  • docs/configure-metadata-custom-site.md
  • docs/configure-metadata-digital-experience-config.md
  • docs/configure-metadata-digital-experience-bundle.md
  • docs/configure-metadata-digital-experience.md

读取完整文件内容,将占位符(如 {siteName})替换为解析值,再用展开后的模板填充元数据 XML/JSON 内容。

第 4 步:不要修改非模板属性

不要修改 Network、CustomSite、DigitalExperience、DigitalExperienceConfig 或 DigitalExperienceBundle 元数据中任何未以 {braces} 包裹的变量表示的默认属性值。

适用场景

  • 项目包含 uiBundles/*/src/ 目录
  • 需要在 Salesforce 上创建或配置承载 React UI Bundle 的站点基础设施
  • 需要更新或更改站点 URL(urlPathPrefix)

验证清单

部署前确认:

  • 已解析全部五个必需属性
  • 所有元数据目录和文件按项目结构存在
  • 所有元数据字段与第 3 步模板一致,仅替换 {braces},未添加或更改其他默认属性值
  • content.json 中的 appSpace 与现有 UIBundle 元数据记录匹配
  • 部署验证成功:

sf project deploy validate --metadata Network CustomSite DigitalExperienceConfig DigitalExperienceBundle DigitalExperience --target-org ${usernameOrAlias}

常见工作流:更新 Experience Site URL

当用户想要更新或更改站点 URL(urlPathPrefix)时使用。步骤:

  1. 阅读 update-site-urls.md,理解三组件架构和 URL 更新工作流
  2. 按照文档中的分步工作流,在三个组件(DigitalExperienceConfig、Network、CustomSite)中一致地更新 URL

限制

本资料未提供收费、价格、平台兼容性、效果或具体定价信息。