fix(pm): accept positional package names for vp rebuild#1564
Open
fengmk2 wants to merge 3 commits into
Open
Conversation
vp rebuild previously only accepted -- pass-through args, so running vp rebuild better-sqlite3 errored with "Unexpected argument". Combined with pnpm v10+ only rebuilding packages whose build scripts are approved, bare vp rebuild was a no-op for native modules like better-sqlite3 (71ms vs 11.7s for pnpm rebuild better-sqlite3) and the user had no discoverable way to name a package. Add a packages: Vec<String> positional to the Rebuild clap variant, matching what the RFC (rfcs/pm-command-group.md §17, lines 660-680 and mapping table at 1283-1304) already specifies. Forward the names to pnpm/npm rebuild before the pass-through args. Yarn/Bun paths are unchanged (warn-and-skip). Snap test packages/cli/snap-tests-global/command-rebuild-pnpm11 captures both the help output and the previously-broken positional form.
✅ Deploy Preview for viteplus-preview canceled.
|
Member
Author
How to use the Graphite Merge QueueAdd the label auto-merge to this PR to add it to the merge queue. You must have a Graphite account in order to use the merge queue. Sign up using this link. An organization admin has enabled the Graphite Merge Queue in this repository. Please do not merge from GitHub as this will restart CI on PRs being processed by the merge queue. This stack of pull requests is managed by Graphite. Learn more about stacking. |
Move packages slice to append after pass_through_args in resolve_rebuild_command, matching update.rs:194-197, remove.rs:147-150, and add.rs:242-245. Resulting command becomes pnpm rebuild --recursive better-sqlite3 instead of pnpm rebuild better-sqlite3 --recursive — same semantics for pnpm/npm, but consistent with the rest of the codebase. Also trim the packages doc comment in cli.rs; the pnpm v10+ approved-builds caveat already lives in docs/guide/install.md and shouldn't bloat --help.
Member
Author
|
@cursor review |
There was a problem hiding this comment.
✅ Bugbot reviewed your changes and found no new issues!
Comment @cursor review or bugbot run to trigger another review on this PR
Reviewed by Cursor Bugbot for commit a92cba8. Configure here.
Add a tracing::debug! span at the spawn site of both run_command and run_command_with_fspy logging the resolved program path, args, and cwd. Gated on the existing VITE_LOG env var, so it's free at runtime when unset. Useful for diagnosing how vite-plus pm subcommands forward arguments to the underlying package manager — e.g. confirming that VITE_LOG=vite_command=debug vp rebuild better-sqlite3 actually spawns pnpm with ["rebuild", "better-sqlite3"].
cpojer
approved these changes
May 13, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

vp rebuild previously only accepted -- pass-through args, so running
vp rebuild better-sqlite3 errored with "Unexpected argument". Combined
with pnpm v10+ only rebuilding packages whose build scripts are approved,
bare vp rebuild was a no-op for native modules like better-sqlite3 (71ms
vs 11.7s for pnpm rebuild better-sqlite3) and the user had no
discoverable way to name a package.
Add a packages: Vec positional to the Rebuild clap variant,
matching what the RFC (rfcs/pm-command-group.md §17, lines 660-680 and
mapping table at 1283-1304) already specifies. Forward the names to
pnpm/npm rebuild before the pass-through args. Yarn/Bun paths are
unchanged (warn-and-skip).
Snap test packages/cli/snap-tests-global/command-rebuild-pnpm11 captures
both the help output and the previously-broken positional form.
Note
Low Risk
Low risk: limited to
rebuildCLI parsing/argument forwarding plus tests/docs; no security- or data-sensitive behavior changes.Overview
vp rebuildnow accepts positional package names (e.g.vp rebuild better-sqlite3 sharp) and forwards them to the underlying npm/pnpmrebuildinvocation, fixing the previous “Unexpected argument” behavior.This threads a new
packagesfield throughRebuildCommandOptions, updates the CLI/handler wiring, and extends unit + snapshot tests and docs to cover the new usage (Yarn/Bun remain warn-and-skip).Reviewed by Cursor Bugbot for commit a92cba8. Configure here.