mcpField
G
generating-ui-bundle-site

generating-ui-bundle-site

github.com/forcedotcom云与 DevOps1.1k3.6k 次安装1 天前更新
代码仓库

关于 generating-ui-bundle-site

用于创建和配置承载 React UI bundle 的 Salesforce Digital Experience Site 的技能,可生成所需站点元数据,并核对站点指向的应用。

主要功能

  1. 01解析五项必需站点属性
  2. 02生成站点元数据结构
  3. 03按文档模板填写元数据
  4. 04验证 UI bundle 引用和部署

适用场景

  1. 01为 React UI bundle 创建 Salesforce 站点
  2. 02使用项目和组织信息配置站点元数据
  3. 03跨元数据组件更新站点 URL

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/forcedotcom/sf-skills --skill generating-ui-bundle-site

安装后在 Claude Code 中输入/generating-ui-bundle-site确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

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

详细介绍

React UI 包的数字体验站点

在 Salesforce 上创建并配置用于托管 React UI 包的数字体验站点。此技能会生成所需的最少站点基础设施——Network、CustomSite、DigitalExperienceConfig、DigitalExperienceBundle 和 sfdc_cms__site 内容类型——以便 React 应用能够通过 Salesforce 提供服务。

React 站点与标准 LWR 站点不同:不需要路由、视图、主题布局或品牌集。该站点是一个轻量容器(appContainer: true),会将渲染工作交给 appSpace 引用的 React UI 包。

必需属性

生成任何元数据之前,先解析全部五个属性。每个属性都有一条回退链——按顺序逐一尝试,直到找到值。

属性格式解析方法
siteNameUpperCamelCase(例如,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 应用。若这两个属性设置错误,站点虽然能够部署,但会显示空白页面,因此请务必根据实际项目数据进行解析。

生成工作流

步骤 1:解析所有必需属性

在构建任何内容之前,确定全部五个属性的值。使用上表中的解析策略,按顺序尝试每个选项,直到找到值。

步骤 2:创建项目结构

使用可用的 Salesforce 元数据架构和 Network、CustomSite、DigitalExperienceConfig 与 DigitalExperienceBundle 的字段上下文,确保每个文件都采用有效结构。

使用以下路径创建任何尚不存在的文件和目录:

元数据类型路径
Networknetworks/{siteName}.network-meta.xml
CustomSitesites/{siteName}.site-meta.xml
DigitalExperienceConfigdigitalExperienceConfigs/{siteName}1.digitalExperienceConfig-meta.xml
DigitalExperienceBundledigitalExperiences/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。请勿在包内创建 sfdc_cms__site 以外的目录。

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

使用下方文档中的默认模板。{大括号} 中的值是已解析的属性引用——用步骤 1 中的实际值替换它们。

元数据类型模板参考
Networkconfigure-metadata-network.md
CustomSiteconfigure-metadata-custom-site.md
DigitalExperienceConfigconfigure-metadata-digital-experience-config.md
DigitalExperienceBundleconfigure-metadata-digital-experience-bundle.md
DigitalExperience(sfdc_cms__site)configure-metadata-digital-experience.md

更新 URL 时,请参阅 update-site-urls.md。

步骤 3 执行说明:加载并使用文档
  • Agent 在尝试填充元数据字段之前,必须阅读步骤 3 中引用的每个 docs/*.md 文件的完整内容。
  • 使用平台的文件读取工具(例如 read_file)完整加载这些文件,然后使用步骤 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 元数据中未以 {大括号} 变量形式表示的任何默认属性值。

验证清单

部署前,请确认:

  • 所有五个必需属性均已解析
  • 所有元数据目录和文件均按项目结构存在
  • 所有元数据字段均符合步骤 3 模板,且仅替换了 {大括号} 中的内容;未添加或更改其他默认属性值
  • content.json 中的 appSpace 与现有的 UIBundle 元数据记录一致
  • 部署验证成功:
sf project deploy validate --metadata Network CustomSite DigitalExperienceConfig DigitalExperienceBundle DigitalExperience --target-org ${usernameOrAlias}

常见工作流

更新体验站点 URL

适用场景: 用户希望更新或更改站点 URL(urlPathPrefix)。

步骤:

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

评论

支持 Markdown