SAP Spartacus 4.0 的技术变化
在您遷移到 4.0 版庫之前,我們強烈建議您切換到新的應用程序結構和新的功能庫。 在多個小步驟中進行遷移更容易(遷移到新的應用程序結構,切換到提取的功能庫,然后遷移到 4.0),您可以確保在每一步之后一切仍然像以前一樣工作。 如果您需要了解我們為何引入此更改的更多信息,請閱讀下一章。
在 3.0 版本之前,我們開始根據其職責分離庫。在 3.0 中,我們已經在單獨的包中發布了一些庫(例如@spartacus/organization、@spartacus/storefinder)。我們也在次要 3.x 版本中繼續移動更多的庫。我們試圖以一種沒有破壞性變化的方式做到這一點。但是,對于每個主要版本,我們都希望償還在次要版本中積累的技術債務。提取的庫是技術債務的巨大貢獻者,因為我們在兩個地方保留了相同的功能。在 4.0 版本中,我們將從核心庫(@spartacus/core、@spartacus/storefront、@spartacus/assets 和 @spartacus/styles)中刪除這些功能,這些功能已經在次要版本中被提取到單獨的庫中。
在此過程中,我們發現我們不得不更改一些較大的模塊以適應這些更改(例如 B2cStoreFrontModule、StorefrontModule 或 CmsLibModule)。
所以這就是為什么我們建議切換到不使用這些模塊的新應用程序結構,并切換到新功能庫(如果它們存在于您正在使用的功能)。您可以在下面找到有關如何操作的通用指南。之后遷移到 4.0 應該會更容易。
Upgrade Angular libraries first
在將 Spartacus 升級到 4.0 之前,您需要先將 Angular 升級到 12 版,并將 Angular 3rd 方依賴項(如@ng-bootstrap/ng-bootstrap 或 @ng-select/ng-select)升級到與 Angular 12 兼容的版本。
ng update @ng-bootstrap/ng-bootstrap@10 @ng-select/ng-select@7 @angular/core@12 @angular/cli@12
“發布”的庫是新的、官方的、經過測試的 Spartacus 庫,可供公眾使用(托管在 npmjs.com 上)
我們通常每 2 周發布一次新庫
次要更改意味著我們添加了新功能,但默認情況下將它們配置為關閉,以免引起兼容性問題。新的次要也意味著包含可能影響兼容性的更改或錯誤修復,但這些也由功能標志 feature flags 控制。因此,所有重大更改都是“選擇加入 opt in”。有關更多信息,請參閱功能標志文檔。
我們通常會在新的次要版本發布前幾周發布標記為“下一個”的預發布庫。目標是提供對新功能的早期訪問并從社區獲得反饋。
如果您選擇不使用新功能,則升級到新的 Major.# 應該沒有問題,并將 features 標志設置為以前的 Major.#。如果您確實發現問題,請報告錯誤,我們將對其進行評估和修復。我們鼓勵您在開發過程中經常升級到最新的庫,以利用錯誤修復和新功能。
為了能夠使用 Spartacus 3.* 中的所有功能,需要 SAP Commerce Cloud 2005 版。例如,2005 版包含用于 B2B 商務組織的 OCC API。此外,需要或至少強烈推薦最新的補丁版本,因為它通常包含影響 Spartacus 的錯誤修復(例如,ASM 需要 1905.5,而 Save for later 功能需要 1905.11)。 Spartacus 3.* 也經過了 1905 版的測試和使用。但是請注意,如果您使用的是 SAP Commerce Cloud 1905,則依賴于 2005 年引入的新 API(例如取消和退貨)的 Spartacus 功能將不可用。了解更多有關特定功能需要哪個版本的 Spartacus 和哪個版本的 SAP Commerce Cloud 的信息,請參閱功能兼容性。
一個命令行升級到 4.0:
ng update @spartacus/schematics@4
更新完成運行后,檢查您的代碼中是否有以 // TODO:Spartacus 開頭的注釋。 有關每個添加評論的詳細信息,請參閱下面的詳細更改列表。
https://github.com/SAP/spartacus/blob/develop/docs/migration/4_0.md#detailed-list-of-changes
總結
以上是生活随笔為你收集整理的SAP Spartacus 4.0 的技术变化的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 什么是 SAP Spartacus 里的
- 下一篇: Shell获取字符串长度的多种方法总结