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 功能,但不能保證所有功能都適用于功能標志和功能級別的所有可能組合。