Changelog

vitejs/vite · · 5 commits

Build fixes and a preload perf win

Fixes minify merging, CSS/preload edge cases, and removes a quadratic preload scan.

Preload helper avoids quadratic SSR link scanning (antur84cf5c028)

The build preload helper now caches existing <link> hrefs in sets instead of rescanning the full DOM for every dependency. That cuts the old quadratic behavior during build-time preload injection, and the updated preload playground test confirms already-preloaded chunks are not duplicated.

Rolldown output minify now merges correctly (hktitofbba3bb8)

Vite now preserves user-provided rolldownOptions.output.minify objects by merging them with the lib build defaults instead of replacing them outright. This fixes cases where partial minify config would previously drop default settings like compress or codegen behavior.

Optimize-deps treats browser: false mappings as empty modules (charan-rathore5e4b9ca)

The dep optimizer now distinguishes explicit browser:false mappings from unsupported Node builtins, returning an empty module without emitting the browser-compatibility warning. This removes noisy warnings and aligns optimized-dep behavior with package browser-field semantics.

Other misc changes

  • CSS preload handling for renderBuiltUrl URLs with queries.
  • HTML asset decoding fix for percent-encoded srcset URLs.
  • Added/updated playground coverage for the above fixes.