借助 SAP 电商云 Spartacus UI 提供的 Schematics 辅助您的前端项目升级
將 Spartacus 升級到新的主要版本(例如,從 3.x 到 4.0)時,Spartacus 遷移機制會自動修復新版本中修改或刪除的代碼。
當您處理功能或錯誤,或對 Spartacus 源代碼進行任何其他更改時,您需要更新原理圖作為完成定義的一部分。 通過將這些更新迭代地作為 DoD 的一部分對源代碼進行每次更改,您就不必在開發周期結束時花費大量時間升級遷移機制,因此,它更容易 為新的主要版本準備 Spartacus 庫。
Migration Mechanism
升級到新的主要版本后,遷移機制應該在新的開發周期開始時更新。 比如Spartacus已經從2.x版本更新到3.0,更新后的機制應該盡快合并到develop分支。 這允許貢獻者從開發周期的一開始就包含遷移及其功能和錯誤修復。
Structure for Updating Schematics
下面這個文件包含了每個 Spartacus 版本對應的遷移腳本:
projects/schematics/src/migrations/migrations.json
下面是其中一個遷移腳本的例子:
"migration-v3-constructor-deprecations-03": {"version": "3.0.0","factory": "./3_0/constructor-deprecations/constructor-deprecations#migrate","description": "Add or remove constructor parameters"},26 個子文件:
以 v3 為例:
每個腳本有四個屬性:name,version, factory 和 description:
name 允許開發人員快速了解遷移腳本在做什么。 遷移名稱具有以下模式:
migration-v<version>-<migration-feature-name>-<sequence-number>。name的要素如下:
-
version:
指示遷移適用于哪個版本的 Spartacus。 -
migration-feature-name:
遷移功能名稱是一個簡短的名稱,用于描述遷移正在執行的操作。
- sequence-number: 序列號指示遷移腳本的執行順序。 例如,如果腳本的序列號為 03,則在運行遷移腳本時,它將是要執行的第三個腳本。
版本對于 Angular 更新機制非常重要。 它用于自動運行特定版本所需的遷移腳本。 有關更多信息,請參閱原理圖自述文件的發布更新原理圖部分。
factory 指向相關的遷移腳本。
description 是一個簡短的、自由格式的描述字段,用于描述遷移腳本的作用。
Constructor Deprecation
projects/schematics/src/migrations/2_0/constructor-deprecations.ts 執行構造函數遷移任務。 通常,開發人員不需要接觸這個文件,而是應該在projects/schematics/src/migrations/2_0/constructor-deprecation-data.ts 中描述構造函數的棄用。 CONSTRUCTOR_DEPRECATION_DATA 常量描述了已棄用的構造函數,并包括 addParams 和 removeParams 屬性,它們允許您分別指定應添加或刪除哪些參數。
Commenting Code
當無法自動遷移代碼時,我們通常會在客戶的代碼庫中添加注釋,描述客戶應該如何將他們的項目升級到新版本的 Spartacus。 我們應該只在手動升級很容易并且編寫遷移腳本太復雜的情況下才這樣做。
projects/schematics/src/shared/utils/file-utils.ts#insertCommentAboveIdentifier 方法在指定標識符 TypeScript 節點上方添加注釋。
以下是如何添加評論的示例:
如果您刪除了一個 API 方法,您可以在刪除的方法上方添加一條注釋,建議可以改用哪個方法。
如果您更改了 NgRx 操作的參數,您可以在更改參數的操作上方添加注釋。
Component Deprecation
與構造函數棄用類似,projects/schematics/src/migrations/2_0/component-deprecations.ts 為組件 *.ts 和 HTML 模板執行組件遷移任務。 通常,開發人員不需要接觸這個文件,而是應該在projects/schematics/src/migrations/2_0/component-deprecations-data.ts 中描述組件的棄用。 COMPONENT_DEPRECATION_DATA 常量描述了已棄用的組件。
CSS
為了處理 CSS 更改,我們打印了一個指向 CSS 遷移文檔的鏈接,客戶可以在其中查找哪些 CSS 選擇器在新版本的 Spartacus 中發生了更改。 如果您要更改 CSS 選擇器,只需更新相關文檔(例如 3.0 中的樣式更改)。
Adding a Migration
(1) 檢查是否有任何更改的文件在公共 API 中導出。 如果否,則無需采取進一步措施。
(2) 檢查您所做的任何更改是否是破壞性更改。 如果沒有,則無需采取進一步措施。 有關更多信息,請參閱維護公共 API。
(3) 對于每個重大更改,您必須執行以下操作:
a. 通過更新相應的遷移文檔文件(例如 docs/migration/3_0.md)來記錄重大更改,并在必要時確保已添加代碼注釋。
b. 構建自動化任務,如上面的驗證、構造函數棄用和組件棄用)部分所述。
c. 通過運行測試、嘗試遷移示例應用程序等來測試添加的遷移。
更多Jerry的原創文章,盡在:“汪子熙”:
總結
以上是生活随笔為你收集整理的借助 SAP 电商云 Spartacus UI 提供的 Schematics 辅助您的前端项目升级的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 我国科研人员开发出可精准检测与治疗癌症的
- 下一篇: 2017年html5行业报告,云适配发布