コンテンツにスキップ

ワークスペースの検出

パターンは、次のうちパターンが 1 つ以上得られた最初のものから読み込みます。

  1. pnpm-workspace.yaml(packages:)
  2. package.json(workspaces。配列、または workspaces.packages)
  3. lerna.json(packages。フィールドがなければ ["packages/*"])

どれからもパターンが得られない場合は、ルートの package.json を単一パッケージとして扱います。

pnpm-workspace.yaml を使う場合は、packages: にルートが含まれていなくても、ルートパッケージも対象に含めます(pnpm はワークスペースのルートを常にワークスペースの一部として扱うため)。package.json の workspaces や lerna.json の場合、ルートは自動では追加されません。

パターンはリポジトリのルートからの相対パスです。

  • * は 1 階層の中で、? は任意の 1 文字に一致します。
  • ** は任意の階層数に一致します。apps/** は apps 自身にも一致します。
  • 先頭の ! は、他のパターンに一致したディレクトリを除外します。

node_modules、.git、dist、build、coverage、.turbo は探索しません。

一致したディレクトリの package.json に空でない name がある場合に、パッケージとして 扱います。同じパッケージ名のディレクトリが 2 つある場合は、パス順で最初のものを使います。

"private": true のパッケージは常に除外され、その後 --only / --exclude が適用されます (オプションを参照)。本番実行(dry run 以外)では、まだレジストリに 公開されていないパッケージは警告を出してスキップします。