Spartacus 库的每个次要版本都包含新功能,这些功能通常是对现有组件的改进。 这些功能通常是用户所期望的,但在某些情况下,这些更新可能被视为破坏性更改,尤其是当您在特定行为或 DOM 结构之上构建了自己的自定义时。

Feature level

为了保持严格的向后兼容性,Spartacus 包含可配置的功能级别,这有助于在改进现有组件的同时保持可预测的行为。

默认情况下,功能级别设置为最新的主要版本(例如 1.0)。 要利用次要版本(例如 1.3)中引入的新行为和改进,您可以配置功能级别,如下例所示:

{  features: {    level: 1.3  }}

每个连续的特征级别都包含前一个特征级别的所有特征。

如果您希望您的功能级别始终设置为最新版本,您可以使用最新标志 (*),如下所示:

features: {  level: *}

您还可以通过在版本号前添加感叹号 (!) 来禁用特定功能级别的功能。 下面是一个例子:

Feature Flags

一些重要的功能可以使用特定的功能标志有选择地切换。

下面是一个例子:

{  features: {    someFeature: false  }}

功能标志可以链接到功能级别,如果定义的功能级别可用,则默认情况下会启用功能。

您可以同时配置功能级别和功能标志,如下例所示:

{  features: {    level: 1.1,    feature1: false,    feature2: true  }}

在此示例中,功能级别设置为 1.1。 将 feature1 设置为 false,如果 feature1 通常是 1.1 版功能集的一部分,您可以有选择地禁用此功能,同时保留 1.1 版中的其余功能。

如果 feature2 是 1.5 版本的一部分,通过将其设置为 true,您可以启用它,否则只能启用 1.1 版本的功能。

如果您有选择地启用功能,建议您特别注意测试您的应用程序。 尽管功能标志用于许多不同的 Spartacus 功能,但不能保证所有功能都适用于功能标志和功能级别的所有可能组合。