Catalogs
"Catalogs" are a workspace feature for defining dependency version ranges as reusable constants. Constants defined in catalogs can later be referenced in package.json
files.
The Catalog Protocol (catalog:
)
Once a catalog is defined in pnpm-workspace.yaml
,
pnpm-workspace.yaml
packages:
- packages/*
# Define a catalog of version ranges.
catalog:
react: ^18.3.1
redux: ^5.0.1
The catalog:
protocol can be used instead of the version range itself.
packages/example-app/package.json
{
"name": "@example/app",
"dependencies": {
"react": "catalog:",
"redux": "catalog:"
}
}
This is equivalent to writing a version range (e.g. ^18.3.1
) directly.
packages/example-app/package.json
{
"name": "@example/app",
"dependencies": {
"react": "^18.3.1",
"redux": "^5.0.1"
}
}