現代軟體開發經常需要創新的方法來管理依賴關係,尤其是在大型 JavaScript 專案中。其中一種方法是在單一專案中使用相同套件的多個版本。這種方法雖然看似非常規,但卻可以滿足各種需求,例如確保遺留系統支援、進行功能切換或促進 A/B 測試。
在這篇文章中,我們將深入探討使用多個版本的套件背後的原因,重點關注功能切換和 A/B 測試,並探討 Bit 如何簡化這個複雜的過程。
遺留系統通常依賴舊版的依賴項。引入新版本可能會導致不相容。使用多個版本可確保新功能可利用更新的庫,同時舊系統保持穩定。
功能切換可讓開發人員控制特定功能的可用性,而無需修改程式碼庫。當增量發布功能或測試其影響時,這種方法特別有用。
發布切換:延遲功能的公開發布,同時確保其程式碼在主分支中合併和測試。
實驗切換:(A/B 測試):允許測試不同用戶群的功能以確定最佳實現。
操作切換:為營運團隊提供啟用或停用功能而無需部署新程式碼的能力。
當切換涉及重大變更(例如昇級庫或更改核心元件)時,功能切換可能需要套件或元件的多個版本。
Bit 提供了 bit snap 命令來使用哈希而不是語義版本對元件進行版本控制,以指示該版本尚未準備好發布(相應地,該命令還執行略有不同的建置管道)。
例如:
'bit snap' => package-name@5475049d02fafa0eaf6885a06d36e42e0ffdc4a3 'bit tag' => package-name@1.2.3
但是,將雜湊作為組件的版本並不能提供有關其用途、其父版本或組件歷史記錄的此「分支」是否有其他迭代的任何資訊。
bit snap 作為 git commit 的 Bit 類比很有用,但不適用於應該整合到生產中的實驗性發行版本。
為了提供更多信息,建議使用預發布選項。例如:
'bit snap' => package-name@5475049d02fafa0eaf6885a06d36e42e0ffdc4a3 'bit tag' => package-name@1.2.3
當使用套件/位元元件的多個版本時,依賴別名是關鍵。這種方法允許團隊在同一專案中維護多個套件版本。
bit tag forms/sign-in -m "add SSO option" --increment prerelease --prerelease-id beta
別名可以輕鬆區分版本:
{ "dependencies": { "@my-org/my-scope.forms.sign-in": "0.0.1", "@my-org/my-scope.forms.sign-in-sso": "npm:@my-org/my-scope.forms/sign-in@0.0.2-beta.0", }
以上是在單一專案中使用套件的多個版本:原因和方式的詳細內容。更多資訊請關注PHP中文網其他相關文章!