【pnpm】モノレポで任意パッケージのバージョンを揃える

こんにちは、フリーランスエンジニアの太田雅昭です。

PNPM Workspace

pnpm workspaceは、pnpmのモノレポ管理の仕組みです。pnpm-workspace.yamlファイルで設定します。

バージョンを揃える

バージョンを揃えるにはいくつか方法があるようです。GPT5の提案では、ルートのpackage.jsonでoverrideを指定するなど複雑な方法でした。しかし調べてみたところもっとシンプルな方法があるようですので、それをご紹介させていただきます。

pnpm workspaceのcatalogs機能を用います。例えばzodだと

pnpm-workspace.yaml

packages:
  - apps/*
  - packages/**/*
catalog:
  zod: ^4.1.8

このようにcatalogとして指定します。これを使用する場所で

package.json

{
  "dependencies":{
    "zod": "catalog:"
  }
}

catalogをインストールするように指定します。これでバージョン管理を一箇所で行うことができるようになります。便利。