skip package-manager operations when a requested option is unsupported
@jong-kyung is already working on this.
Since Sep 21, 2026.
Assessment
This issue has not been assessed yet.
Description
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-saveallows manifest changes. - Dropping
--filterremoves 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
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from voidzero-dev/vite-plus
-
enhancement
Difficulty 2/5 1-3 hours Newbie friendliness 62/100
voidzero-dev/vite-plus#2097 · 10 comments · 2 reactions ·
-
enhancement
voidzero-dev/vite-plus#2766 · 4 comments · 1 reaction · 1 assignee ·
-
pending triage
Difficulty 3/5 1-2 days Newbie friendliness 68/100
voidzero-dev/vite-plus#2735 ·
-
Difficulty 4/5 3-5 days Newbie friendliness 58/100
voidzero-dev/vite-plus#2703 · 1 assignee ·
-
enhancement pending triage
Difficulty 4/5 3-5 days Newbie friendliness 55/100
voidzero-dev/vite-plus#2698 · 10 comments · 1 reaction ·
All issues in voidzero-dev/vite-plus
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 85/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
Eynzof/Hermes-CN-Desktop#610 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
-
bug team:backend track:services-maintenance
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
cowprotocol/services#4950 ·
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
gitbutlerapp/gitbutler#15998 · 1 comment ·