よくある質問
このドキュメントは作成中です。
Lernaリポジトリにサードパーティの依存関係を追加するにはどうすればよいですか?
Lernaは、依存関係の追加やリンクを行う責任を負いません。それは、選択したパッケージマネージャー(npm / yarn / pnpm)が最も得意とするところです。パッケージマネージャーのworkspaces機能を使用することで、package.jsonファイルで設定した関係に基づいて、ローカルパッケージのすべてのリンクが自動的に行われます。
パッケージマネージャーのworkspacesドキュメントはこちらで確認できます。
npm( https://docs.npmjs.com/cli/using-npm/workspaces )yarn( https://yarnpkg.com/features/workspaces )pnpm( https://pnpm.dokyumento.jp/workspaces )
注意: lerna自体はパッケージマネージャーのworkspaces機能よりも前に存在していたため、以前は、そのギャップを埋めようとするいくつかのコマンド(add、bootstrap、link)がありました。幸いなことに、これらのコマンドはもはや必要なくなり、lernaは得意とすることに集中し、パッケージマネージャーも同様に集中できます。
lernaリポジトリ内の新しいパッケージ
Lernaリポジトリ内で新しいパッケージを作成するには、lerna createコマンドを使用できます。
lerna create <packageName>
詳細については、create ドキュメントを参照してください。
lerna createを使用しない場合は、packagesフォルダーのサブディレクトリ内でnpm initを実行してパッケージを手動で作成することもできます。Lernaはそれを自動的に検出します。
既存のパッケージ
lerna import <package>を使用して、既存のパッケージをLernaリポジトリに転送できます。このコマンドは、コミット履歴を保持します。
lerna import <package>は、URLではなくローカルパスを受け取ります。この場合、リンクしたいリポジトリをファイルシステムに用意する必要があります。
publishが失敗した場合、公開をリトライするにはどうすればよいですか?
一部のパッケージが正常に公開され、他のパッケージが公開されなかった場合、lerna publishは、変更されたファイルが残った状態でリポジトリを矛盾した状態にした可能性があります。これを回復するには、失敗した実行で発生した不要なローカル変更をリセットして、クリーンなワーキングツリーに戻します。次に、同じlerna publishコマンドを再試行します。Lernaはすべてのパッケージを再度公開しようとしますが、すでに公開されているパッケージを認識し、警告を出してスキップします。
パッケージの新しいバージョンを選択するために位置引数なしでlerna publishコマンドを使用した場合は、再試行中に再度バージョンを上げる必要なく、lerna publish from-gitを実行して、すでにタグ付けされている同じバージョンを再試行できます。
Lernaはどのようにパッケージを検出しますか?
デフォルトでは、npmとyarnの場合、lernaはpackage.jsonで設定されたworkspacesプロパティを使用して、操作するパッケージを認識します。このプロパティの詳細については、npmドキュメントまたはyarnドキュメントを参照してください。
pnpmを使用している場合は、lerna.jsonでnpmClientをpnpmに設定した可能性があります。この場合、Lernaはpnpm-workspace.yamlのpackagesプロパティを使用して、操作するパッケージを認識します。このプロパティの詳細については、pnpmドキュメントを参照してください。
lernaにリポジトリ内の特定のパッケージのサブセットに焦点を当てさせたい場合は、lerna.jsonのpackagesプロパティを利用してパッケージを検索できます。