コンテンツにスキップ

pnpm

$ ~/Library/pnpm/

ここにグローバルインストールしたものが入ってくる。

pnpm-workspace.yaml は、モノレポであることを示唆しするファイルである。
具体的に、以下のような構成で使用する。

my-app/
├── pnpm-workspace.yaml
├── package.json
├── packages/
│ ├── ui/
│ │ └── package.json
│ ├── api/
│ │ └── package.json
│ └── shared/
│ └── package.json
└── apps/
└── web/
└── package.json
packages:
- "packages/*"
- "apps/*"
  • 依存関係の共有(node_modulesの節約)
  • パッケージ間の相互参照
    {
    "dependencies": {
    "@my-app/shared": "workspace:*" // ← ローカルパッケージを参照
    }
    }
  • 特定パッケージへのコマンド実行
    pnpm --filter @my-app/api dev # apiだけ起動
    pnpm --filter @my-app/ui build # uiだけビルド