Skip to content

Support pnpm catalog #1835

@tobynguyen27

Description

@tobynguyen27

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

  • Read the Contributing Guidelines.
  • Confirm this request is for Vite+ itself and not for Vite, Vitest, tsdown, Rolldown, or Oxc.
  • Check that there isn't already an issue requesting the same feature.

Metadata

Metadata

Assignees

No one assigned

    Priority

    None yet

    Start date

    None yet

    Target date

    None yet

    Effort

    None yet

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions