メインコンテンツへスキップ

Lerna での pnpm の使用

非公式ベータ版翻訳

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

Lerna は pnpm ワークスペース内で使用することで、pnpm と Lerna の両方のメリットを最大限に活かせます。

pnpm ワークスペース内で使用する場合、Lerna は以下のようになります:

  • pnpm-workspace.yaml を使用してパッケージの場所を解決します (https://pnpm.io/workspaces)

  • package.json 内の "workspaces" を無視します

  • bootstraplinkadd コマンドの使用をブロックします。代わりに、依存関係の管理には pnpm コマンドを直接使用してください (https://pnpm.io/cli/install).

  • パッケージ依存関係のワークスペースプロトコルを尊重します

    • lerna version 実行中、依存関係は通常通り更新されますが、workspace: プレフィックスが存在する場合はそれを保持します
    • ワークスペースエイリアスが使用されている場合、エイリアスはバージョン番号を指定していないため、lerna version はその依存関係のバージョンを更新しません

はじめに

Lerna で pnpm をセットアップするには:

  1. まだインストールされていない場合は、pnpm をインストールしてください: https://pnpm.io/installation

  2. ルートディレクトリに node_modules/ フォルダが存在する場合は削除してください。ワークスペースをまだ使用していない場合は、lerna clean を実行してすべてのパッケージ内の node_modules/ フォルダを削除します

  3. lerna.json 内で "npmClient": "pnpm" を設定します

  4. プロジェクトのルートに pnpm-workspace.yaml ファイルを作成します すでに npm または yarn のワークスペースを使用している場合は、package.json の "workspaces" プロパティを pnpm-workspace.yaml に移動してください。ワークスペースをまだ使用していない場合は、lerna.json の "packages" プロパティを pnpm-workspace.yaml に移動してください。例:

    package.json
    {
    "workspaces": ["packages/*"]
    }

    および

    lerna.json
    {
    "packages": ["packages/*"]
    }

    上記の設定が以下のようになります:

    pnpm-workspace.yaml
    packages:
    - "packages/*"
  5. (オプション) 既存のロックファイルから pnpm-lock.yaml ファイルを生成するために pnpm import を実行します。サポートされているロックファイルのソースについては、https://pnpm.io/cli/import を参照してください

  6. pnpm install を実行します