簡介
Lerna 是適用於 JavaScript/TypeScript 的原始單一儲存庫工具。它存在了很多年,並且被數萬個專案使用,包括 React 和 Jest。
它解決了 JavaScript/TypeScript 單一儲存庫的兩個最大問題
- Lerna 對任何數量的專案執行指令,而且它以最有效率的方式,並按照正確順序執行,並且可在多部機器上分派執行。
- Lerna 管理你的發布流程,從版本控管到發布到 NPM,並提供多種選項,以確保可以容納任何工作流程。
Nx(同名開源建置系統背後的公司)已接手主持 Lerna。 Nx 是由前 Google 員工開發的建置系統,並採用 Google 內部工具使用的許多技術。Lerna v5 是在此新託管下發布的第一個版本,更新過時的套件並開始清理儲存庫本身。從 v6+ 開始,Lerna 將任務排程工作委派給 Nx 歷經戰場考驗的業界領先任務執行器,這表示 lerna run
可以免費獲得快取和指令分派的優點!
為何使用 Lerna?
- 超級快速! Lerna 很快,甚至比大多數市面上的類似解決方案還要快(查看此基準測試以了解更多資訊)。如何做到?在幕後,Lerna v6+ 使用 Nx 來執行任務。進一步了解如何執行任務。
- 運算快取 - Lerna 知道你即將執行的任務過去是否已執行過。Lerna 會還原檔案並立即重現終端機輸出,而不是執行它。此外,此快取可以與同事和 CI 共享。使用 Lerna 時,整個組織永遠都不必重複建置或測試相同內容。 進一步了解 »
- 無組態分散工作執行 Lerna 可以在多台機器上分散任何指令,無需任何組態,同時保留在單一機器上執行的開發人員人體工學。換句話說,使用 Lerna 擴充你的 monorepo,就像啟用布林旗標一樣簡單。請參閱啟用 DTE 可以讓你的 CI 快 20 倍的範例。 閱讀更多 »
- 漂亮的終端機輸出 Monorepos 可以有數百或數千個專案。列印每個指令的所有內容,很難看到失敗的原因。幸運的是,Lerna 做得更好。
- 強大的圖形可視化器 Lerna 附帶一個強大的互動式可視化器,可以簡化對你的工作空間的理解。 閱讀更多 »
- 發佈到 NPM Lerna 是將多個套件發佈到 npm 的終極工具。無論套件是否有獨立的版本,Lerna 都能滿足你的需求。 閱讀更多 »
- 易於採用 即使具備所有這些功能,Lerna 也非常容易採用。它需要幾乎零組態。 想看看怎麼做嗎?