メインコンテンツへスキップ
非公式ベータ版翻訳

このページは PageTurner AI で翻訳されました(ベータ版)。プロジェクト公式の承認はありません。 エラーを見つけましたか? 問題を報告 →

イントロダクション

LernaはJavaScript/TypeScript向けのオリジナルなmonorepoツールです。長年にわたり運用され、ReactやJestを含む数万のプロジェクトで採用されています。

JavaScript/TypeScript monorepoが抱える2つの主要課題を解決します:

  • 任意の数のプロジェクトに対してコマンドを実行します。最も効率的な方法で適切な順序で処理し、複数マシンへの分散実行が可能です。

  • バージョン管理からNPM公開までのパブリッシングプロセスを管理し、あらゆるワークフローに対応できる柔軟なオプションを提供します。

Nx(同名のオープンソースビルドシステムを提供する企業)がLernaの管理を引き継ぎましたNxは元Googleエンジニアによって開発されたビルドシステムで、Googleの内部ツールで使用されている技術を多数採用しています。Lerna v5はこの新体制下での初リリースで、古いパッケージの更新やリポジトリの整理を実施。v6以降では、タスクスケジューリングをNxの実戦検証済み・業界最先端のタスクランナーに委譲。これによりlerna runはキャッシュ機能とコマンド分散の恩恵を無償で享受できます!

Lernaを選ぶ理由

  • 超高速! 競合ソリューションの大半を上回る処理速度を実現(ベンチマーク詳細)。その秘密は?Lerna v6+が内部でNxをタスク実行に活用しているからです。タスク実行の詳細

  • 計算キャッシュ - 過去に実行済みのタスクを認識し、再実行せずにファイルを復元・ターミナル出力を即時再現。キャッシュはチームメンバーやCIと共有可能。Lerna採用で組織全体が同じビルド/テストを二度実行する必要はなくなります。詳細 »

  • 設定不要の分散タスク実行 単一マシンでの実行と同等の開発体験を維持しながら、設定なしで任意のコマンドを複数マシンに分散。monorepoのスケーリングはブール値フラグの有効化だけで実現。DTE有効化でCI速度が最大20倍向上する事例を参照。詳細 »

  • 見やすいターミナル出力 数百・数千のプロジェクトを含むmonorepoでも、全出力では障害原因が埋もれがち。Lernaはこの課題を巧妙に解決します。

  • 強力なグラフ可視化 ワークスペースの理解を深めるインタラクティブなビジュアライザーを内蔵。詳細 »

  • NPM公開機能 独立バージョン管理の有無にかかわらず、複数パッケージのnpm公開を確実にサポート。詳細 »

  • 導入の容易さ 先進機能を備えつつ、設定はほぼ不要でシームレスな導入が可能。導入方法を見る