skip package-manager operations when a requested option is unsupported

Open
#2,764 3 comments 0 reactions 1 assignee View on GitHub

@jong-kyung is already working on this.

Since Sep 21, 2026.

Assessment

This issue has not been assessed yet.

Description

enhancement

Summary

Could we standardize how Vite+ handles unsupported package-manager options?

When the selected package manager cannot honor an option, I propose showing a clear diagnostic and skipping the entire requested operation rather than removing the option and continuing.

Current behavior

Unsupported options currently produce different outcomes.

Request Selected PM Current behavior
vp update --no-save Yarn Warns, drops the option, and runs the update
vp update --filter <workspace> Bun <1.4 Warns, drops the filter, and runs the update
vp update --filter <workspace> Yarn Berry Returns an error without executing
vp pm audit --fix Yarn Warns and returns Noop

The shared not_supported(...) handling records a warning, resets the option to its default value, and continues into command resolution. It does not prevent execution.

Some individual resolvers also omit options without a diagnostic. Those cases need to be checked against the native PM's behavior before classifying them as unsupported.

Why change this?

Removing an option can change the operation the user requested:

  • Dropping --no-save allows manifest changes.
  • Dropping --filter removes the requested workspace restriction.

Printing a warning does not preserve those constraints.

Proposed policy

For Vite+-owned named options on normal project package-manager commands:

  • Preserve supported options, including translations to native equivalents.
  • If the selected PM or version cannot honor an option, report the limitation and skip the entire operation.
  • Apply this behavior to not_supported(...) instead of dropping the option and continuing.
  • Keep errors for malformed input and invalid argument combinations.

Example diagnostic:

yarn does not support --no-save for update. No update was performed.

Scope

  • Exclude Vite+-managed global package operations, which use Vite+'s own management logic rather than the selected project's PM.
  • Leave raw pass-through arguments after -- unchanged in this proposal.
  • Leave existing command translations and fallback policies unchanged.
Dominant language
Rust
Stars
5.8k
Forks
263
Avg merge
1d 3h
Merged PRs (30d)
142

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from voidzero-dev/vite-plus

All issues in voidzero-dev/vite-plus

Similar issues

More Rust issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.