github voidzero-dev/vite-plus v1.2.0
vite-plus v1.2.0

4 hours ago

Vite+ 1.2 supports authenticated private npm registries and shows a new vp run summary that counts cache hits among cache-enabled tasks and reports successful tasks. It also verifies installer downloads, shows download progress in vp upgrade, and fixes task cache misses in pnpm projects and PowerShell exit status.

Highlights

  • Support authenticated private npm registries (#2624), by @RSS1102.
  • The vp run summary now reads like 3/4 cache hit (75%), 9/10 successful, 2s saved.: the cache hit rate leaves out tasks with caching disabled, and the count of successful tasks replaces the count of failed tasks (vite-task#821), by @wan9chi.

Features

  • The install.sh and install.ps1 installers check each downloaded platform archive against the registry's SHA-512 dist.integrity before extracting it, and stop when the digest is missing or does not match (#2949), by @fengmk2.
  • vp upgrade shows a progress bar while it downloads the new platform package, instead of looking frozen on slow connections (#2968), by @kshanxs.
  • When a task is not cached because it wrote a file it also read, the summary says it modified its inputs, and vp run --last-details shows the cache: { input, output } exclusions that let it be cached. Detailed summaries show each cause of an error on its own line, and an invalid --filter glob reports its error once (vite-task#783, vite-task#784, vite-task#761, vite-task#763), by @wan9chi.
  • The task runner can be built without file-access tracking on additional platforms. Tasks on those platforms must configure both input and output explicitly to be cached (vite-task#829), by @mfechner.
  • Upgrade the bundled tools (#2935, #2977, #2998, #3021, #3039), by @voidzero-guard[bot] and @fengmk2:
    • vite@8.3.3 to vite@8.3.4.
    • rolldown@1.2.12 to rolldown@1.2.13.
    • tsdown@0.23.0 to tsdown@0.23.1.
    • vitest@5.0.3 to vitest@5.0.4. Vitest now turns on its on-disk caches by default, and vp test tasks run through vp run stay cacheable with them.
    • oxlint@1.87.0 to oxlint@1.88.0 and oxfmt@0.72.0 to oxfmt@0.73.0. Oxfmt now also formats TOML in Markdown code blocks and frontmatter. The new lint and format versions can flag code that passed before, so run vp fmt after upgrading if CI runs vp check.
    • vp migrate keeps Prettier and continues the rest of the migration when the Prettier config uses a format the bundled Oxfmt cannot read, such as .prettierrc.yml.
    • oxlint-tsgolint@7.0.2003 to oxlint-tsgolint@7.0.2004. Line disable comments apply to type-aware diagnostics again (tsgolint#1271), so disable comments moved to the } as T line for v1.1.0 need to move back above the statement.
    • Projects that use @effect/tsgo should stay on v1.1.0 for now. The latest @effect/tsgo@0.52.0 supports oxlint-tsgolint@7.0.2004 but not oxlint@1.88.0, so its install-time patch step fails until @effect/tsgo adds support.

Fixes & Enhancements

  • Reinstalling dependencies with pnpm, or installing them at another path, no longer causes task cache misses, and tasks that run pnpm run or pnpm exec no longer miss the cache after pnpm rechecks dependencies (vite-task#823, vite-task#824, vite-task#825), by @wan9chi.
  • On macOS, tasks with automatic file-access tracking can run Node.js single executable applications, such as pnpm 11's standalone binary, and deno compile outputs (vite-task#840), by @wan9chi.
  • Cached tasks can run scripts whose shebang names an interpreter path longer than 126 bytes (vite-task#788), by @lifeiscontent.
  • When a cache hit's outputs cannot be restored, vp run fails with an error suggesting vp cache clean instead of reporting a successful cache hit (vite-task#770), by @wan9chi.
  • vp run no longer stops every task when concurrent tasks write to a full output pipe, such as a CI log collector (vite-task#801), by @naokihaba.
  • On Linux, tasks with automatic file-access tracking start faster (vite-task#817), by @wan9chi.
  • In PowerShell, a failing vp command sets $? to False and stops && chains, as calling vp.exe directly does (#2947), by @fengmk2.
  • The Windows installer works when the PowerShell profile enables Set-StrictMode, and leaves the caller's strict mode unchanged (#3005), by @fengmk2.
  • Sourcing the Vite+ env script in POSIX shells is much faster with a long PATH, for example from 1.5 s to 6 ms in dash with 147 entries (#2905), by @jonykru.
  • Node.js version ranges from .node-version, engines.node, and devEngines.runtime, and package-manager version ranges, follow npm's semver rules (#2835), by @ryuapp.
  • vp migrate adds the tsdown <0.23 compatibility settings (deps.resolveDepSubpath and attw.profile) only for projects on an older tsdown, so upgrades from Vite+ 1.x or tsdown@0.23.0 and later keep the modern defaults (#2910), by @fengmk2.
  • vp create vite:generator keeps the description prompt visible instead of drawing the spinner over it, uses concrete version ranges for dependencies missing from the workspace catalog, adds rootDir: "src" to the generated tsconfig.json, and scaffolds generators on bingo@0.13.2 with Zod 4 option schemas (#2940, #2996, #1831), by @jong-kyung, @fengmk2, and @renovate[bot].
  • vp create stops processing an organization template archive that expands past fixed size, compression ratio, or entry count limits (#2950), by @fengmk2.
  • vp config skips Git config writes that change nothing, so concurrent runs across linked worktrees no longer fail with could not lock config file after the first setup (#2958), by @naokihaba.
  • Git hooks no longer append the legacy $VP_HOME/bin or ~/.vite-plus/bin directory to PATH. They use the inherited environment with the project's node_modules/.bin first, so projects without a local vite-plus dependency need the Vite+ bin directory on the Git client's PATH (#2930), by @liangmiQwQ.
  • Concurrent commands that need the same uninstalled Node.js version download it once; the others wait and reuse the installation (#3024), by @fengmk2.
  • @voidzero-dev/vite-plus-core declares the same postcss, optional fsevents, and Yuku parser ranges as the bundled Vite and tsdown, and @oxlint/plugins matches the bundled oxlint (#2921), by @fengmk2.
  • vp pack --help lists both default env prefixes, VITE_PACK_ and TSDOWN_ (#3002), by @jong-kyung.
  • Prompts and status lines use one space after status symbols (#2928), by @cpojer.

Docs

  • Document shell completion, the global -C flag, the split directory layout, automatic update checks and how to opt out, package manager subcommands, and vp env doctor diagnostic scopes (#2972, #2956, #2973, #2960, #2975, #2982), by @jong-kyung.
  • Clarify how vp exec and vpx resolve commands, how vp test selects its runner, how vp config treats existing Git hooks, what vp check needs for type checking, and how global CLI environment variables behave (#2957, #2979, #2962, #2978, #2916, #2919), by @jong-kyung.
  • Correct migration prerequisites, minimum versions, and upgrade order, clarify tsup migration and staged configuration, fix local CLI installation without a global vp, and state the version requirements of vp env uninstall (#2990, #2923, #2944, #3004, #2946), by @jong-kyung.
  • Rename the install guide to Package Management, clarify package-management command compatibility, and align the create, run, and staged guides with CLI behavior and Vite Task defaults (#2929, #2925, #2939, #2941, #2908), by @jong-kyung.
  • Explain task cache behavior and how Vite build outputs are cached (#2963, #2942), by @yusuke99 and @jong-kyung.
  • Correct the baseUrl and editor setup guidance in troubleshooting, and clarify JetBrains IDE support (#2943, #3001), by @jong-kyung.
  • Note that lazyPlugins does not defer local module imports (#2967), by @kshanxs.
  • Align inline comments in code examples (#2927), by @yusuke99.

Chore

  • Bump vite-task to 9ba4cc9; its user-facing changes are listed above (#3019), by @wan9chi.
  • Speed up CI by removing platform waits, reusing native test binaries and dependency caches, skipping slow pnpm cache restores on macOS and Windows, and installing prebuilt cargo-zigbuild (#2961, #3023, #3015, #3010), by @fengmk2.
  • Run CI bootstrap scripts without unpinned tsx, isolate upstream CLI help capture from workspace overrides, and update security-action to v1.0.10 (#2948, #2976, #3022), by @fengmk2.
  • Cache the docs build with the Vite Task remote cache (#2926, #2951), by @wan9chi.
  • Add a Nix flake for the contributor development environment (#2874, #2974), by @myuron and @fengmk2.
  • Stabilize the CLI help wrapping and browser snapshot tests (#2952, #3006), by @myuron and @fengmk2.
  • Exclude upstream-managed dependencies from Renovate (#2918), by @fengmk2.
  • Refine the release-manager guidance (#2917), by @fengmk2.

Bundled Versions

Tool Version Source Changelog
vite 8.3.4 b6c20f6 8.3.4
rolldown 1.2.13 f7de35f 1.2.13
tsdown 0.23.1 npm 0.23.1
vitest 5.0.4 npm 5.0.4
oxlint 1.88.0 npm 1.88.0
oxlint-tsgolint 7.0.2004 npm 7.0.2004
oxfmt 0.73.0 npm 0.73.0

Upgrade

vp upgrade

New Contributors

@ryuapp @jonykru @myuron @kshanxs @mfechner

Full Changelog: v1.1.0...v1.2.0

Published Packages

  • @voidzero-dev/vite-plus-core@1.2.0
  • vite-plus@1.2.0

Installation

macOS/Linux:

curl -fsSL https://vite.plus | bash

Windows:

irm https://vite.plus/ps1 | iex

Or 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:1.2.0 vp build

Run any vp command without installing it; see the Docker guide for more.

Don't miss a new vite-plus release

NewReleases is sending notifications on new releases.