什麼是單一儲存庫?
單一儲存庫是將許多不同的應用程式和套件收集到單一程式碼庫中。
另一種設定稱為多重儲存庫 - 多個程式碼庫會分別發布和版本化。
共用程式碼
在多重儲存庫中
在多重儲存庫設定中,在應用程式之間共用程式碼的程序相對冗長。
想像一下您有三個獨立的儲存庫 - app
、docs
和 shared-utils
。app
和 docs
都仰賴 shared-utils
,而後者在 npm 上發布為套件。
假設 shared-utils
中的錯誤導致 app
和 docs
發生重大問題。您需要
- 在
shared-utils
中提交修正錯誤的程式碼 - 在
shared-utils
中執行publish
任務,將其發布到 npm - 在
app
中提交,提升shared-utils
相依套件的版本 - 在
docs
中提交,提升shared-utils
相依套件的版本 app
和docs
現在已準備好部署。
依賴 shared-utils
的應用程式越多,此程序花費的時間就越長。這可能會非常繁瑣。
在單一儲存庫中
在單一儲存庫設定中,shared-utils
會與 app
和 docs
位於同一個程式碼庫 中。這使得此程序非常簡單
- 在
shared-utils
中提交修正錯誤的程式碼 app
和docs
現在已準備好部署。
不需要版本控制,因為 app
和 docs
並不依賴 npm 中 shared-utils
的版本 - 它們依賴 程式碼庫中的版本。
這使得可以建立單一提交,同時修正多個應用程式和套件中的錯誤。這對於團隊來說可以大幅提升速度。
單一儲存庫如何運作?
單一儲存庫的主要建構區塊是 工作區。您建立的每個應用程式和套件都會在自己的工作區中,並有自己的 package.json
。正如您從我們的指南中所學到的,工作區可以互相依賴,這表示您的 文件
工作區可以依賴 shared-utils
{
"dependencies": {
"shared-utils": "*"
}
}
工作區由與 安裝您的相依性 相同的 CLI 管理。
根工作區
您還會有根工作區 - 程式碼庫根資料夾中的 package.json
。這是以下項目的有用位置
- 指定出現在整個單一儲存庫中的相依性
- 加入對整個單一儲存庫運作的任務,而不仅仅是個別工作區
- 加入有關如何使用單一儲存庫的文件