編集

pnpm v9.5 Catalogs

pnpm v9.5 がリリースされました。

https://github.com/pnpm/pnpm/releases/tag/v9.5.0

Catalogs という機能が追加されています。

Catalogs | pnpm

Catalogs は、複数の依存関係のバージョン範囲を再利用可能な定数として利用する仕組みです。

yaml
# pnpm-workspace.yaml
packages:
  - packages/*

catalogs:
  # Can be referenced through "catalog:react17"
  react17:
    react: ^17.0.2
    react-dom: ^17.0.2

  # Can be referenced through "catalog:react18"
  react18:
    react: ^18.2.0
    react-dom: ^18.2.0

次のように利用します。

json
{
  "name": "@example/components",
  "dependencies": {
    "react": "catalog:react18"
  }
}

pnpm publish を実行すると、catalog:は実際の値に置き換えらます。

json
{
  "name": "@example/components",
  "dependencies": {
    "react": "^18.2.0"
  }
}
編集