メインコンテンツへスキップ

LernaとNx

Nrwl(オープンソースのビルドシステムであるNxを開発している会社)がLernaの管理を引き継ぎましたNxは、元Google社員によって開発されたビルドシステムであり、Googleの内部ツールで使用されている多くの技術を利用しています。LernaはNxを使用してワークスペース内のパッケージとその依存関係を検出します。LernaはNxの強力なタスクランナーに処理を委ねてスクリプトを実行できるようにし、パッケージ間の依存関係を尊重しながら、スクリプトを並列に実行したり、結果をキャッシュしたり、複数のマシンに分散したりすることができます。LernaのどのバージョンがどのNxバージョンと互換性があるかの完全なリストについては、LernaとNxのバージョンマトリックスを参照してください。

以下は、各ツールが提供する機能の概要です。Lernaは単独で使用し続けることができ、さらにNx Cloudを無料で使用することで、既存の作業を大幅に改善できます。

Lerna

機能

  1. バージョン - パッケージのバージョンを自動的にインクリメントし、変更履歴情報を生成し、Githubリリースを作成するなど。
  2. 公開 - 自動的にタグを作成し、npmなどのパッケージレジストリにパッケージを公開する。

費用

無料およびオープンソース

セットアップ

  • npm install lerna
  • npx lerna init

Nx

機能

  1. コードの変更によって影響を受けるタスクのみを実行する
  2. 前提条件となるタスクを最初に実行する
  3. タスク結果をローカルにキャッシュする
  4. プロジェクトグラフを可視化する
  5. Nx Console - Visual Studio Codeプラグイン

費用

無料およびオープンソース

セットアップ

  • npx lerna add-caching
  • Lernaを通常どおり使用し続ける

Lernaは、タスクの依存関係を検出するために、バックグラウンドでNxの強力なタスクランナーに処理を委ねます。lerna runの一部のオプションは、古いバージョンのLernaとは異なる動作をします。古いバージョンのLernaとの違いの詳細については、(Nxを搭載した)Lernaを使用してタスクを実行するを参照してください。


Nx Cloud

機能

  1. 組織全体でキャッシュされたタスク結果を共有する
  2. タスク実行をエージェントマシン間で効率的に分散する

費用

オープンソースプロジェクトの場合は無料

クローズドソースリポジトリの場合、最初の500計算時間/月は無料です。ほとんどのリポジトリはこの制限を超えません。その後は、計算時間1時間あたり1ドルです。

セットアップ

  • npx nx connect-to-nx-cloud
  • nx generate @nrwl/workspace:ci-workflow(またはCIを手動で設定)
  • Lernaを通常どおり使用し続ける