配置文件
使用配置文件,您可以自定义 PWA Kit 应用程序工作方式的许多方面,包括:API 访问、URL 格式化、处理多个站点、请求代理和服务器端渲染。
可以使用您选择的 JavaScript、YAML 或 JSON 编写配置文件。支持以下文件扩展名:.js
、.yml
、.yaml
和 .json
。
当使用 Retail React App 模板创建 PWA Kit 项目时,它带有一个配置文件:/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 版之前,这些设置位于 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 版本的字符串。 允许的值:支持的Node 版本 |
ssrEnabled |
启用或禁用构建服务器端渲染所需文件的布尔值。自 2021 年 8 月起,不推荐将此值设置为 false 。 |
ssrOnly |
glob 表达式数组,其中* 是匹配零个或多个任意字符的通配符。确定哪些文件仅可用于服务器端渲染系统,并且不能通过 /mobify/bundle/ 路径获得。新生成项目的默认值: ['ssr.js', 'ssr.js.map', 'node_modules/**/*.*']
|
ssrShared |
glob 表达式数组,其中 * 是匹配任何字符的零个或多个实例的通配符。确定哪些文件可用于服务器端渲染系统并通过 /mobify/bundle/ 路径可用。新生成项目的默认值: |
您可以在 config
目录中包含多个配置文件,包括特定环境的配置文件。
特定于环境的配置可以使您的部署更加高效和灵活。例如,您能:
- 将单个捆绑包部署到多个 Managed Runtime 环境,并使每个环境连接到不同的 B2C Commerce 实例。
- 在本地开发期间连接到您自己的 On-demand Sandbox,但在部署到 Managed Runtime 时连接到不同的实例。
要创建特定于环境的配置文件,请遵循 default.js
中使用的相同约定,但使用目标环境的名称作为文件的基本名称。使用任何受支持的文件格式和相应的文件扩展名。示例:production.js
, staging.json
。
PWA Kit 应用程序通过按以下顺序搜索 config
目录并询问以下问题来选择要加载的正确配置文件:
- 是否有与 Managed Runtime 上当前运行环境的名称相匹配的文件?
- 如果它在本地运行,是否有带有支持的文件扩展名的称为
local
的文件? - 如果尚未发现配置文件,是否有带有支持的文件扩展名的称为
default
的文件?
一旦这些问题的答案是“是”,PWA Kit 即会停止查找并加载有问题的文件。
如果两个文件具有相同的基本名称但不同的文件扩展名,则选择具有最高分配优先级的文件扩展名。支持的文件扩展名按以下顺序分配优先级,从最高到最低优先级:.js
、.yml
、.yaml
或 .json
。这意味着在 default.js
和 default.json
之间,PWA Kit 会加载 default.js
,因为它具有更高的优先级。