配置文件

使用配置文件,您可以自定义 PWA Kit 应用程序工作方式的许多方面,包括:API 访问、URL 格式化、处理多个站点、请求代理和服务器端渲染。

可以使用您选择的 JavaScript、YAML 或 JSON 编写配置文件。支持以下文件扩展名:.js.yml.yaml.json

当使用 Retail React App 模板创建 PWA Kit 项目时,它带有一个配置文件:app/config/default.js。它导出的配置对象根据提供给 pwa-kit-create-app 的选项而设置,但您可以随时更新配置。在初始项目生成之后,通常需要更新以与 B2C Commerce 实例的更改保持同步。

为了支持同构渲染,配置值被序列化到页面。请勿在配置中输入秘密信息!

您可以替换 default.js 或使用其他配置文件对其进行补充,因为 PWA Kit 支持特定于环境的配置,本指南稍后将介绍这些配置。

我们首先来查看 default.js 或任何配置文件可用的特定配置对象和属性。

将您的应用程序与 Managed Runtime 相关联的项目字符串是配置文件的一部分,但可以在项目路径根目录下 package.json 文件顶部的 name 属性中找到。初始项目生成后,您可以更改 name 的值以匹配您在 Runtime Admin 中看到的项目 ID。

在 PWA Kit 1.5.0 版之前,这些设置位于 app/api.config.js

要配置对 B2C Commerce API 和 Open Commerce API (OCAPI) 的访问,您可以编辑从配置文件导出的 app.commerceAPI 对象。

这是带有示例值的带注释的代码片段:

要配置对 Einstein API 的访问,您可以编辑 app.einsteinAPI 对象。

这是带有示例值的另一个带注释的代码片段:

要更多了解使用前面代码片段中的配置对象的 CommerceAPI 类,请参阅我们的 Retail React App 架构指南。

要更多地了解在 Account Manager 和 Business Manager 中为 B2C Commerce 实例启用 API 访问的设置任务,请参阅我们的设置 API 访问

您可以自定义网店 URL 在 app.url 对象中的格式。

默认情况下,用以下值配置 app.url 对象:

使用这些默认设置,当前站点和区域设置都显示在 URL 路径中。

您可以将 url.locale 设置为以下一个值来选择当前区域设置在 URL 中的显示(或不显示)方式:

  • path:区域设置包含在 URL 路径中。示例:/en-US/women/dress
  • query_param:区域设置作为查询参数包含在内。示例:/women/dress?locale=en-US
  • none:URL 中不包含区域设置。示例:/women/dress

url.showDefaults:此布尔值指示默认站点或区域设置值是否显示在 url 中。默认为:false。

我们将为您的应用程序配置的站点提取到它自己的名为 config/sites.js 的文件中。该文件被导入到每个配置文件中并在 app 对象中导出。通过这种方式分离文件,您可以更轻松地同步应用程序支持的站点和 Business Manager 后端中定义的站点。(如果您愿意,可以直接在配置文件中定义您的站点。)

app 对象还包含用于管理多个站点及其别名的其他设置。这些设置在我们的多站点指南中有更详细的介绍。

请求代理在 ssrParameters.proxyConfigs 阵列中配置,并在我们的代理请求指南中详细介绍。

在 PWA Kit 1.5.0 版之前,这些设置位于 package.json

下表突出显示与服务器端渲染相关的配置选项。这些选项不是 app 对象的一部分,而是表示为主 exports 对象的各个属性。

属性 说明
ssrParameters.ssrFunctionNodeVersion 确定用于运行 App Server 的 Node 版本的字符串。

允许的值:16.x.
ssrEnabled 启用或禁用构建服务器端渲染所需文件的布尔值。自 2021 年 8 月起,不推荐将此值设置为 false
ssrOnly glob 表达式数组,其中*是匹配零个或多个任意字符的通配符。

确定哪些文件仅可用于服务器端渲染系统,并且能通过/mobify/bundle/路径获得。

新生成项目的默认值:['ssr.js', 'ssr.js.map', 'node_modules/**/*.*']
ssrShared glob 表达式数组,其中 * 是匹配任何字符的零个或多个实例的通配符。

确定哪些文件可用于服务器端渲染系统并通过 /mobify/bundle/ 路径可用。

新生成项目的默认值:

您可以在 app/config/ 目录中包含多个配置文件,包括特定环境的配置文件。

特定于环境的配置可以使您的部署更加高效和灵活。例如,您能:

  • 将单个捆绑包部署到多个 Managed Runtime 环境,并使每个环境连接到不同的 B2C Commerce 实例。
  • 在本地开发期间连接到您自己的 On-demand Sandbox,但在部署到 Managed Runtime 时连接到不同的实例。

要创建特定于环境的配置文件,请遵循 default.js 中使用的相同约定,但使用目标环境的名称作为文件的基本名称。使用任何受支持的文件格式和相应的文件扩展名。示例:production.js, staging.json

PWA Kit 应用程序通过按以下顺序搜索 app/config 并询问以下问题来选择要加载的正确配置文件:

  1. 是否有与 Managed Runtime 上当前运行环境的名称相匹配的文件?
  2. 如果它在本地运行,是否有带有支持的文件扩展名的称为 local 的文件?
  3. 如果尚未发现配置文件,是否有带有支持的文件扩展名的称为 default 的文件?

一旦这些问题的答案是“是”,PWA Kit 即会停止查找并加载有问题的文件。

如果两个文件具有相同的基本名称但不同的文件扩展名,则选择具有最高分配优先级的文件扩展名。支持的文件扩展名按以下顺序分配优先级,从最高到最低优先级:.js.yml.yaml.json。这意味着在 default.jsdefault.json 之间,PWA Kit 会加载 default.js,因为它具有更高的优先级。