よくある質問
このドキュメントは作成中です。
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
プロパティを利用してパッケージを検索できます。