Upgrading Vite+
Use vp upgrade to update the global vp binary, and use Vite+'s package management commands to update the local vite-plus package in a project.
Overview
There are two parts to upgrading Vite+:
- The global
vpcommand installed on your machine - The local
vite-pluspackage used by an individual project
You can upgrade both of them independently.
Global vp
vp upgrade # upgrade to the latest version
vp upgrade --check # check for updates without installingRollback
Vite+ keeps the 3 most recent versions installed so you can revert quickly:
vp upgrade --rollbackOlder versions are pruned automatically after each upgrade. The active version and the previous version are always kept, so a rollback target is never removed.
Local vite-plus
Update the project dependency with the package manager commands in Vite+:
vp update vite-plusYou can also use vp add vite-plus@latest if you want to move the dependency explicitly to the latest version.
Updating Aliased Packages
Vite+ sets up an npm alias for its core package during installation:
viteis aliased tonpm:@voidzero-dev/vite-plus-core@latest
vp update vite-plus does not re-resolve this alias in the lockfile. To fully upgrade, update it separately:
vp update @voidzero-dev/vite-plus-coreOr update everything at once:
vp update vite-plus @voidzero-dev/vite-plus-coreYou can verify with vp outdated that no Vite+ packages remain outdated.
Updating the Vitest Pin
If you migrated with vp migrate, your project pins vitest to an exact version so the whole project shares a single Vitest copy with the bundled vp test runner. The pin lives in your package manager's override block:
- npm / Bun: a
vitestentry underoverridesinpackage.json - Yarn: a
vitestentry underresolutionsinpackage.json - pnpm: a
vitestentry underoverridesinpnpm-workspace.yaml— unless yourpackage.jsonalready had apnpmfield, in which case it lives underpnpm.overridesinpackage.jsoninstead (pnpm ignorespnpm-workspace.yamloverrides whenpackage.jsondefinespnpm.overrides)
A Vite+ release can bump the bundled Vitest. Because that pin also applies to vite-plus's own vitest dependency, an out-of-date pin keeps installing the previous runner even after you upgrade vite-plus — splitting Vitest's internals (mocks, expect, runner state) between the pinned copy and the one vp test loads.
After upgrading vite-plus, re-pin vitest to the version Vite+ now bundles. Check that version with:
vp --versionThen set the vitest override to that exact version, or rerun vp migrate to update the pin for you.