web-dev-qa-db-ja.com

LernaをYarnワークスペースで使用することに利点はありますか?

現在、monorepoを移行して Lerna を使用するようにしています。

LernaはNPMとYarnの両方をサポートし、さらにYarnワークスペースでの使用の構成を可能にします。 Lerna with Yarnワークスペースが、Lerna withNPMに明確な利点があるかどうかは私にはわかりません。多くの投稿は、Lernaが箱から出してYarnワークスペースとほぼ同じことをしていると主張しています。

Lerna with NPMとは対照的に、Lerna with Yarnワークスペースを使用することに利点はありますか?

11
axelyung

私の知る限り、NPMにはYarn workspacesに匹敵するメカニズムはありません。

Lerna + Yarnワークスペースは、アプリケーションではなくライブラリを開発するときに輝き始めますが、この組み合わせは、リリース管理や簡単に定義できる機能などの便利さを提供することで、ローカル開発者のエクスペリエンスを向上させることができると思います。プロジェクト内のパッケージのすべてまたは選択した「スコープ」に対して「root」スクリプトを実行します。

4
Peter

調査の結果、次の違いが見つかりました。

  1. NPMを使用すると、package-lock.json各パッケージのファイル。Yarnを使用すると、プロジェクトのルートにoneのみが作成されます。
  2. Yarnワークスペースは、依存関係ツリーで発生する可能性のある競合を解決するためのサポートが優れているようです(依存関係が使用されるモジュールで宣言されている場合、 この問題 を参照)
2
axelyung