跳至主要內容

封裝修補

概觀

有時您需要對相依性進行一些小更動,只是為了解決一些小問題。建議的動作是提出上游 PR,但可能需要一些時間,直到您的更動通過審查並結束於一個版本;這段期間該怎麼辦?您有兩個選項

  • 您可以使用 git: 協定,它會讓您直接從其開發存放庫安裝專案,只要它已正確設定。

  • 或者,您可以使用 patch: 協定,直接從您的專案對相依性進行小更動,同時讓它們與原始程式碼分開。

不再需要等待合併和發布拉取請求,不再需要分岔存放庫,只為了修正那個阻止您的應用程式運作的小問題:內建的修補機制將永遠讓您解除封鎖。

建立修補程式

若要建立修補程式,請執行 yarn patch 指令,並傳遞封裝名稱給 Yarn,讓 Yarn 將所要求的封裝解壓縮到暫存資料夾中。接著,您可以自由編輯修補程式中的檔案。

完成更動後,執行 yarn patch-commit -s,並將暫存資料夾作為參數:修補程式將產生於 .yarn/patches 中,並套用於您的專案。將其加入 Git,您就可以開始進行了。

維護修補程式

預設情況下,yarn patch 將始終重設修補程式。如果您希望新增變更,請使用 --update 標記並遵循與之前相同的程序 - 您的修補程式將會重新產生。

限制

  • 因為它們目前是在擷取時間而非解析時間計算,所以套件相依性已經解析,而且修補程式將無法變更它們。請改用 packageExtensions 機制,它專門用於新增新的執行時期相依性到套件。

  • 修補程式不適合修改二進位檔案。縮小的檔案也有問題,儘管我們可以改善這個功能,透過類似 Prettier 的工具自動處理此類檔案。