Description
In current Vite+, when running vp add vue with pnpm catalogs configured in pnpm-workspace.yaml, it totally ignores the catalog and add the package with it version directly in package.json.
Since pnpm catalogs feature provide a lot of benefit for packages management (Anthony Fu wrote a blog about it), it will be great if VIte+ does support it.
Suggested solution
-
This feature can be toggle by a config in vite.config.ts: pnpm.catalog: boolean or an env var like VP_CATALOG=boolean.
-
When running vp add and Vite+ detects a workspace that use pnpm catalog: instead of adding packages with pinned versions, it writes catalog: references into package.json and updates the workspace catalog:
# Given pnpm-workspace.yaml with:
# catalogs:
# prod:
# react: ^18.3.0
vp add react
# → detects react in "prod" catalog
# → writes "react": "catalog:prod" to package.json
# → runs vp install
vp add lodash
# → lodash not in any catalog
# → prompts to select a catalog (or skip)
# → fetches latest version, updates pnpm-workspace.yaml
# → writes "lodash": "catalog:prod" to package.json
# → runs vp install
Alternative
No response
Additional context
This feature is inspired by ni
Validations
Description
In current Vite+, when running
vp add vuewith pnpm catalogs configured inpnpm-workspace.yaml, it totally ignores the catalog and add the package with it version directly inpackage.json.Since pnpm catalogs feature provide a lot of benefit for packages management (Anthony Fu wrote a blog about it), it will be great if VIte+ does support it.
Suggested solution
This feature can be toggle by a config in
vite.config.ts:pnpm.catalog: booleanor an env var likeVP_CATALOG=boolean.When running
vp addand Vite+ detects a workspace that use pnpm catalog: instead of adding packages with pinned versions, it writescatalog:references intopackage.jsonand updates the workspace catalog:Alternative
No response
Additional context
This feature is inspired by
niValidations