vp env use now sets each package manager's version independently. This release also adds Oxlint plugin APIs and fixes migration, installation, and template extraction.
Breaking Changes
Package-manager overrides
Direct package-manager commands no longer use VP_PACKAGE_MANAGER. Use the matching version variable in shell profiles, CI jobs, and Dockerfiles:
| Previous override for a direct command | New override |
|---|---|
VP_PACKAGE_MANAGER=npm@<version>
| VP_NPM_VERSION=<version>
|
VP_PACKAGE_MANAGER=pnpm@<version>
| VP_PNPM_VERSION=<version>
|
VP_PACKAGE_MANAGER=yarn@<version>
| VP_YARN_VERSION=<version>
|
VP_PACKAGE_MANAGER=bun@<version>
| VP_BUN_VERSION=<version>
|
VP_PACKAGE_MANAGER still selects the manager and version for vp install and related commands. vp env use pnpm@10 now changes only the direct pnpm commands. To override vp install, set VP_PACKAGE_MANAGER explicitly.
The old .session-package-manager file is no longer read or migrated. Run vp env use again to create the new session files. Projects that use only project pins or global defaults need no changes. See the environment guide (#2658, #2659), by @liangmiQwQ.
Installer preferences
VP_NODE_MANAGER now controls only Node.js. Existing installations retain saved preferences during upgrades, so vp upgrade needs no configuration changes. For scripted installations, set VP_PM_MANAGER to apply the same choice to package managers:
| Previous combined setting | New combined setting |
|---|---|
VP_NODE_MANAGER=no
| VP_NODE_MANAGER=no VP_PM_MANAGER=no
|
VP_NODE_MANAGER=yes
| VP_NODE_MANAGER=yes VP_PM_MANAGER=yes
|
Update installer commands in CI jobs and Dockerfiles. Use VP_NPM_MANAGER, VP_PNPM_MANAGER, VP_YARN_MANAGER, or VP_BUN_MANAGER for individual preferences. The interactive prompt retains its combined choice. See the installer variables guide (#2681), by @liangmiQwQ.
Vite DevTools
Projects that install @vitejs/devtools must update its dependency range from ^0.4.0 || ^0.5.0 to ^0.7.1. Projects without this optional dependency need no changes. This requirement comes with the Vite upgrade listed below.
Highlights
- Installers and
vp upgradeshare setup behavior across platforms, which simplifies maintenance. The installers retain support for older releases (#2611), by @liangmiQwQ. - Custom Oxlint rules can import their APIs from
vite-plus/lint/pluginsandvite-plus/lint/plugins-dev.vp migrateupdates supported existing imports (#2328), by @fengmk2. vp installandvp addnow honor--ignore-scriptsfor named packages and managed global installations (#2682), by @jong-kyung.
Features
- The bundled tools update from
vite@8.2.2tovite@8.3.0and fromrolldown@1.2.7torolldown@1.2.8. They also update fromoxlint@1.81.0tooxlint@1.82.0and fromoxfmt@0.66.0tooxfmt@0.67.0. The new linter and formatter can flag code that passed before. Runvp fmtafter the upgrade if CI runsvp check(#2670), by @fengmk2.
Fixes & Enhancements
vp createrejects malformed registry versions that could place organization template files outside the cache directory (#2665), by @fengmk2.vp env pinupdates an active local.nvmrcand preserves its comments. Use--target nvmrcto select this file explicitly (#2676), by @ywenhao.vp migratereports unsupported ESLint rules that it skips, so users can review the missing checks (#2689), by @yusuke99.vp migrateimports leftover tsdown configuration when a project already uses Vite+ (#2646), by @TheAlexLichter.vp migrateaccepts single-line JSON formatter configuration with a final newline (#2643), by @TheAlexLichter.vp migrateavoids a redundantplaywrightdependency when the project already declares@playwright/test(#2637), by @yusuke99.- Newly scaffolded local generators honor
--no-interactiveand report missing arguments without prompts. Existing generators need the updated entrypoint (#2677), by @SaKaNa-Y. vp upgradeinstalls its dependencies correctly when the installation directory is inside a pnpm workspace (#2644), by @fengmk2.- Nested package-manager commands retain the selected Node runtime and package-manager versions (#2631), by @lyzno1.
- Built-in tools reuse the Node executable that starts the CLI. Editor lint and format servers work when
nodeis absent fromPATH(#2673), by @fengmk2. - The npm command wrapper enables Node's compile cache before it loads the CLI, which reduces repeated startup work (#2648), by @pablog12.
- Package-manager commands suppress pnpm, npm, and supported Yarn update notices. Yarn 4 daily tips are also hidden (#2649, #2650, #2651), by @fengmk2.
- Invalid
package.jsonerrors include the affected file's path (#2683), by @adamaveray.
Docs
- The README task example uses the supported
envfield (#2653), by @SaKaNa-Y. - Migration guidance tells pnpm users to retain the generated
viteandvitestdependencies (#2660), by @naokihaba. - Lint and format guides explain root configuration and overrides for monorepos. They clarify that nested configuration is not supported (#2668), by @liangmiQwQ.
Chore
- The repository removes unused Babel dependencies and the unused hooks directory setter (#2634, #2647), by @jong-kyung.
- CLI snapshot tests run across parallel jobs, and the pnpm 11 workspace pack test excludes generated archives (#2657, #2655), by @fengmk2.
- CI removes the unused Graphite optimization and adds Solid 2 ecosystem coverage (#2678, #2680), by @fengmk2.
- Release guidance clarifies validation and announcement procedures (#2633), by @fengmk2.
- The runtime manager refreshes the signing keys for Node.js release verification (#2687), by @voidzero-guard[bot].
Bundled Versions
| Tool | Version | Source |
|---|---|---|
vite
| 8.3.0
| 434e8e9
|
rolldown
| 1.2.8
| 9704b56
|
tsdown
| 0.23.0
| npm |
vitest
| 4.1.11
| npm |
oxlint
| 1.82.0
| npm |
oxlint-tsgolint
| 7.0.2001
| npm |
oxfmt
| 0.67.0
| npm |
Upgrade
vp upgradeNew Contributors
@yusuke99, @pablog12, @SaKaNa-Y, @ywenhao, @adamaveray
Full Changelog: v0.3.1...v0.3.2
Published Packages
@voidzero-dev/vite-plus-core@0.3.2vite-plus@0.3.2
Installation
macOS/Linux:
curl -fsSL https://vite.plus | bashWindows:
irm https://vite.plus/ps1 | iexOr download and run vp-setup.exe from the assets below.
Docker:
docker run --rm -it -v "$PWD:/app" -w /app ghcr.io/voidzero-dev/vite-plus:0.3.2 vp buildRun any vp command without installing it; see the Docker guide for more.