歡迎使用 Rush!
Rush 讓同時建置和發佈多個 NPM 套件的 JavaScript 開發人員更輕鬆。如果您想將所有專案整合到單一儲存庫中,您來對地方了!Rush 是一種快速、專業的解決方案,可管理這種情況。它為您提供:
單一 NPM 安裝: Rush 可透過一個步驟,將您所有專案的所有相依性安裝到一個通用資料夾中。這不只是儲存庫根目錄中的「package.json」檔案(這可能會讓您意外地
require()
相鄰專案的相依性)。相反地,Rush 使用符號連結來為每個專案重建精確的「node_modules」資料夾,且沒有其他方法似乎會出現的任何限制或故障。👉 此演算法支援 PNPM、NPM 和 Yarn 套件管理員。
自動本機連結:在 Rush 儲存庫中,您的所有專案都會自動互相符號連結。當您進行變更時,您可以在不發佈任何內容,且不會有任何
npm link
的麻煩的情況下看到下游效應。如果您不希望連結某些專案,也支援這種做法。快速建置:Rush 會偵測您的相依性圖表,並以正確的順序建置您的專案。如果兩個套件沒有直接相依性,Rush 會將其建置平行化為獨立的 NodeJS 程序(並以 易讀的順序顯示即時主控台輸出)。實際上,這種多程序方法可以產生比單一程序工具鏈中的所有非同步函式更顯著的加速效果。
子集和增量建置:如果您只打算使用儲存庫中的幾個專案,
rush rebuild --to <project>
只會對您的上游相依性進行全新建置。在您進行變更之後,rush rebuild --from <project>
只會對受影響的下游專案進行全新建置。而且如果您的工具鏈已啟用 package-deps-hash,則rush build
會提供強大的跨專案增量建置(也支援子集建置)。循環相依性:如果您有建置錘子工廠的錘子,Rush 可以幫您解決!當套件間接相依於其舊版本時,循環中的專案會使用上次發佈的版本,而其他專案仍會取得最新版本。
大量發佈:在需要發佈時,Rush 可以偵測哪些套件已變更,自動提升所有適當的版本號碼,並在每個資料夾中執行
npm publish
。如果您願意,可以設定您的伺服器,以每小時自動執行rush publish
。變更日誌追蹤:每當建立 PR 時,您可以要求開發人員為受影響的專案提供主要/次要/修補程式日誌項目。在發佈期間,這些變更將會自動彙整到格式精美的 CHANGELOG.md 檔案中。
企業原則:是否想要在開發人員將新程式庫新增至 package.json 之前先進行檢閱,但又不想針對已核准的情況麻煩他們?是否想要強制您的所有專案都相依於相同的程式庫版本號碼?公司 Git 歷程記錄中是否意外出現不專業的個人電子郵件地址?當您有多位開發人員和多個專案時,Rush 可以協助維護一致的生態系統。
還有更多!Rush 是由 Microsoft SharePoint 的平台團隊所建立。我們每天從內部和公開 Git 儲存庫,為數百萬使用者的協力廠商 SDK 和即時服務建置數百個生產 NPM 套件。如果有一個重要的套件管理問題需要解決,它很可能會成為 Rush 的功能。