A packed release with task runner concurrency controls, a new vpr shorthand, dynamic shell completions, bun package manager support, and 10x migration performance improvement.
Highlights
- Task runner concurrency controls -- New
--concurrency-limitflag to limit concurrent tasks (defaults to 4) and--parallelflag to ignore task dependencies and run all tasks at once (vite-task#288, vite-task#309) vprstandalone shorthand -- Run tasks faster withvpr buildinstead ofvp run build(#1178)- Dynamic shell completions --
vp runandvprnow offer tab-completion for available tasks across all major shells (#1181) - Bun package manager support --
vp createand install scripts now support bun as a first-class package manager (#1005) - 10x migration speedup --
rewriteAllImportsuses cached rules, pre-filtering, and rayon parallelism for dramatically faster migrations (#1172)
Breaking Changes
vp runargument order -- Flags must now come before the task name:vp run -r buildinstead ofvp run build -r, because arguments after the task name are now passed through to the task instead of consumed byvp(vite-task#286, vite-task#290) -- @liangmiQwQ, @branchseerVITE_PLUS_*env vars renamed toVP_*-- All environment variables now use the shorterVP_prefix (#1166) -- @jong-kyung
Features
- Add
vpras standalone shorthand forvp run(#1178) -- @fengmk2 - Implement dynamic shell completion with
vp runtask support (#1181) -- @nekomoyi - Add shell completion for
vprcommand (#1227) -- @nekomoyi - Add bun as a package manager (#1005) -- @fengmk2
- Non-blocking upgrade check with rate-limited notice (#1173) -- @fengmk2
- Migrate
.nvmrcto.node-versionduringvp migrate(#1159) -- @naokihaba - Expose bundled tool versions via
vite-plus/versionsexport (#1162) -- @kazupon - Export JS API from
oxfmtundervite-plus/fmt(#1235) -- @leaysgur - Enable task cache by default in monorepo template (#1230) -- @fengmk2
- Task runner:
--concurrency-limitflag to limit the number of tasks running at the same time (defaults to 4) (vite-task#288, vite-task#309) -- @branchseer - Task runner:
--parallelflag to ignore task dependencies and run all tasks at once with unlimited concurrency (unless--concurrency-limitis also specified) (vite-task#309) -- @branchseer - Task runner: add
VP_*toDEFAULT_UNTRACKED_ENV(vite-task#297) -- @jong-kyung - Upgrade upstream dependencies: Rolldown 1.0.0-rc.12, Vite 8.0.3, Vitest 4.1.2, tsdown 0.21.7, oxfmt 0.43.0, oxlint 1.58.0, @oxc-project/runtime 0.122.0, TypeScript peer range ^6.0.0 (#1147, #1161, #1191, #1244) -- @Brooooooklyn
Fixes & Enhancements
- Speed up
rewriteAllImports~10x with cached rules, pre-filter, and rayon (#1172) -- @fengmk2 - Adapt
vp runargument order for flags-before-task breaking change (#1170) -- @fengmk2 - Show helpful error for unknown
vite:templates (#1130) -- @naokihaba - Upgrade reqwest from 0.12 to 0.13 and rename rustls-tls feature (#1068) -- @Giorno-Giovana
- Suggest
vp runfor all templates (#1127) -- @jong-kyung - Remove misleading PATH position check in
vp env doctor(#1140) -- @jong-kyung - Fix fish shell wrapper for
vp env use(#1141) -- @nekomoyi - Exclude
node_modules/.vite-tempfrom cache input tracking (#1096) -- @fengmk2 - Correctly inform about prettierignore (#1160) -- @TheAlexLichter
- Allow registry commands to work outside a project (#1151) -- @fengmk2
- Auto-set git
core.hooksPathwithout prompting (#1157) -- @fengmk2 - Inject default
fmt: {}config and rebrand oxfmt messages (#1163) -- @fengmk2 - Auto-remove
esModuleInterop: falsefrom tsconfig.json (#1148) -- @fengmk2 - Auto-remove
allowSyntheticDefaultImports: falsefrom tsconfig.json (#1153) -- @fengmk2 - Get
vite_plus_homefrom node wrapper's path (#1185) -- @liangmiQwQ - Support JSONC format in oxlintrc/oxfmtrc migration (#1195) -- @connorshea
- Rewrite vitest self-references in
globals.d.tsfor type-aware linting (#1177) -- @fengmk2 - Remove setting oxlint
configPathoption in Zed editor config (#1205) -- @camc314 - Stop intercepting
viteasvpand synthesizevprin task scripts (#1186) -- @fengmk2 - Add package-scoped negative globs to prevent cache miss in monorepos (#1198) -- @fengmk2
- Add
peerDependencyRulesfor standalone pnpm projects (#1222) -- @fengmk2 - Remove
defineConfigexport fromoxlint(#1234) -- @leaysgur - Preserve browser provider peer deps and fix version warning (#1236) -- @fengmk2
- Pin
@oxlint/migrateto bundled oxlint version (#1243) -- @fengmk2 - Task runner: Ctrl-C now prevents future tasks from being scheduled and prevents caching of in-flight task results (vite-task#309) -- @branchseer
- Task runner: restore terminal state on Ctrl+C during interactive task selection (vite-task#306) -- @kazupon
Refactoring
- Simplify
vp --versionby using generated versions module (#1164) -- @kazupon - Remove PM fallback from
vp run, always delegate to vite-plus (#1179) -- @fengmk2 - Move pnpm config into
pnpm-workspace.yaml(#1237) -- @fengmk2
Chore
- Pin node version to avoid flaky tests (#1135) -- @fengmk2
- Bump vite-task rev and adapt spawn API (#1155) -- @jong-kyung
- Add snap test sharding with
--shard=X/Ysupport (#1189) -- @fengmk2 - Use
--no-frozen-lockfilein install E2E test (#1199) -- @fengmk2 - Retry failed snap test cases instead of skipping flaky tests (#1209) -- @fengmk2
- Update GitHub Actions to latest versions (#1212) -- @fengmk2
- Add
#[serial]to env-var tests to prevent concurrent access races (#1223) -- @fengmk2 - Enforce
.jsfile extensions in imports via nodenext module resolution (#1232) -- @fengmk2 - Bump vite-task to 1ef4e2f6 (#1240) -- @branchseer
- Disable upgrade deps in fork (#1242) -- @hyoban
- Task runner: port
packages/toolsbins to single Rust binary (vtt) (vite-task#291) -- @branchseer - Task runner: add ctrl-c tests for labeled mode and cached tasks (vite-task#307) -- @branchseer
- Task runner: add ctrl-c propagation test for SIGINT handling (vite-task#303) -- @branchseer
- Task runner: make snapshot tests self-contained (vite-task#302) -- @branchseer
- Task runner: fix flaky ctrl-c e2e test on macOS Rosetta CI (vite-task#308) -- @branchseer
Published Packages
@voidzero-dev/vite-plus-core@0.1.15@voidzero-dev/vite-plus-test@0.1.15vite-plus@0.1.15
Installation
macOS/Linux:
curl -fsSL https://vite.plus | bashWindows:
irm https://vite.plus/ps1 | iexUpgrade:
vp upgradeNew Contributors
Welcome to all new contributors! 🎉
Full Changelog: v0.1.14...v0.1.15