Skip to content
Latchkey

Nx vs Lerna: CIにはどちらのmonorepoツールか?

Nxはcacheと影響を受けた分の実行を備えた完全なmonorepoビルドプラットフォーム。Lernaはバージョニングと公開に注力し - 現代のLernaは内部でNx上で動く。

Nxはtaskグラフ、計算のcache (ローカルとリモート)、generator、pluginを備えた機能豊富なmonorepoシステムである。Lernaはmonorepoのバージョニングと公開を管理する。NxチームがLernaを引き継いで以来、現代のLernaはtaskの実行にNxを使う。

NxLerna
スコープビルドプラットフォーム (cache、plugin)バージョニング + 公開
task/計算のcacheあり (ローカル + リモート)Nx経由 (現代のLerna)
影響を受けた分の実行あり (nx affected)あり (Nx経由)
公開外部 / plugin中核機能
関係現代のLernaを駆動今やNx上に構築

CIにおいて

cache、taskグラフ、影響を受けた分のみの実行には、Nxがエンジンであり - 現代のLernaはすでに内部でそれを使っている。Lernaの独自の強みは、依然として協調的なバージョニングと公開にある。多くのチームは高速なCI taskにNx、releaseにLernaを使うか、あるいはNx単体に別の公開ステップを組み合わせる。両者は今や競うよりも協調する。

高速化する

NxのリモートcacheをCI jobをまたいで有効化し、影響を受けたプロジェクトに絞る - 最大の高速化だ。cache missで依然として実行されるtaskはCI runnerで動く。高速なマネージドrunnerがそれらを短縮する。

結論

cacheと影響を受けた分の実行を備えた完全なmonorepoビルドプラットフォームが欲しい: Nx。協調的なバージョニングと公開が必要: Lerna (これは今やNx上で動く)。多くのmonorepoはtaskにNx、releaseにLernaを使う。

関連ガイド