LernaとNx
Nrwl(オープンソースのビルドシステムであるNxを開発している会社)がLernaの管理を引き継ぎました。Nxは、元Google社員によって開発されたビルドシステムであり、Googleの内部ツールで使用されている多くの技術を利用しています。LernaはNxを使用してワークスペース内のパッケージとその依存関係を検出します。LernaはNxの強力なタスクランナーに処理を委ねてスクリプトを実行できるようにし、パッケージ間の依存関係を尊重しながら、スクリプトを並列に実行したり、結果をキャッシュしたり、複数のマシンに分散したりすることができます。LernaのどのバージョンがどのNxバージョンと互換性があるかの完全なリストについては、LernaとNxのバージョンマトリックスを参照してください。
以下は、各ツールが提供する機能の概要です。Lernaは単独で使用し続けることができ、さらにNx Cloudを無料で使用することで、既存の作業を大幅に改善できます。
Lerna
機能
- バージョン - パッケージのバージョンを自動的にインクリメントし、変更履歴情報を生成し、Githubリリースを作成するなど。
- 公開 - 自動的にタグを作成し、npmなどのパッケージレジストリにパッケージを公開する。
費用
無料およびオープンソース
セットアップ
npm install lerna
npx lerna init
Nx
機能
- コードの変更によって影響を受けるタスクのみを実行する
- 前提条件となるタスクを最初に実行する
- タスク結果をローカルにキャッシュする
- プロジェクトグラフを可視化する
- Nx Console - Visual Studio Codeプラグイン
費用
無料およびオープンソース
セットアップ
npx lerna add-caching
- Lernaを通常どおり使用し続ける
注
Lernaは、タスクの依存関係を検出するために、バックグラウンドでNxの強力なタスクランナーに処理を委ねます。lerna run
の一部のオプションは、古いバージョンのLernaとは異なる動作をします。古いバージョンのLernaとの違いの詳細については、(Nxを搭載した)Lernaを使用してタスクを実行するを参照してください。
Nx Cloud
機能
- 組織全体でキャッシュされたタスク結果を共有する
- タスク実行をエージェントマシン間で効率的に分散する
費用
オープンソースプロジェクトの場合は無料
クローズドソースリポジトリの場合、最初の500計算時間/月は無料です。ほとんどのリポジトリはこの制限を超えません。その後は、計算時間1時間あたり1ドルです。
セットアップ
npx nx connect-to-nx-cloud
nx generate @nrwl/workspace:ci-workflow
(またはCIを手動で設定)- Lernaを通常どおり使用し続ける