Repository navigation
October 15, 2026
Bug Fixes
+redirectswith a Base URL (#3615) (68a5edf)vike:server(deprecatevike:server-entry) (#3581) (3fcdce2)- a +server that awaits the global context at its top level no longer waits for itself (#3589) (bc2b00b)
- always pass the public pageContext object to users (#3543) (1f85b01)
- always use client router to render the error page (#3600) (526cf99)
- an onRenderHtml() that returns a plain string renders the page (instead of 500) (#3616) (9ad2b9a)
- check each environment's build input for HTML entries (#3561) (255c953)
- deprecate
vike/fetch(closes #3608) (#3609) (f0e65a6) - don't add a trailing slash to URLs with a file extension (#3560) (69fb85b)
- don't hang
$ vike devwhen +serverEntry.js handles SIGINT/SIGTERM (#3618) (053cd1f) - don't hang
vike devwhen a+viteplugin has cyclic objects (#3548) (3bf584b) - don't hang createDevMiddleware() when Vike's config recovers before the dev server exists (cd8c110)
- don't mistake other plugins' virtual modules for Vike page entries (#3545) (f29653b)
- don't reject Vite CLI options (#3544) (0e4a284)
- don't set Vike's entry file names on other server environments (#3559) (b060148)
- don't share the temporary transpiled +config file between processes on the same root (4689368)
- don't wrap +server.js twice (#3617) (8ba6ee8)
- exit when the terminal is closed instead of looping on
write EIO(fix #3577) (#3579) (feffb0f) - getReadableWebStream() converts a Node.js stream (#3601) (cb5c756)
- improve handling when a static asset fails to load (#3598) (ef5704e)
- name build.assetsDir in its empty-string error (#3562) (732a6e5)
- pass public pageContext to +headersResponse and +csp.nonce (fix #3535) (#3536) (b005535)
- pre-render after all Vite environments are built (#3564) (b2c0d52)
- preserve cookies on redirects and client-side navigation (#3552) (033cb69)
- propagate stream cancellation (#3556) (24ac6b5)
- remove slow crawling warning (59dcb35)
- remove the dev FOUC buster of virtual CSS (#3605) (4f18d20)
- require Vite 7.1 or above (#3565) (5fb3117)
- scope a +middleware with a path and an order to that path (Universal Middleware 0.6) (#3583) (e3b43bd)
- support Vite's
builder.sharedConfigBuild: true(#3546) (774e3ca) - update @universal-middleware, @universal-deploy, @vikejs/*, vite-plugin-vercel and convert-route (rou3 1.x route syntax) (#3580) (1a069a7)
Features
+serverEntry(#3582) (1e61bbe)+serverEntryat dev (#3584) (8911cd3)pageContext.contentfor non-HTML pages (closes #1525) (#3551) (8ebbd09)- enable Vike extensions to install middlewares (closes #3407) (#3594) (e667e7c)
- streamed
pageContextvalues (d467deb) - Vike Environment API (#3550) (7884d91)
globalContext.devMiddleware(#3592) (5d09444)
Performance Improvements
MINOR BREAKING CHANGES
Note
We recommend ignoring MINOR BREAKING CHANGES unless this version breaks your app, see Vike Versioning.
- The
pathof universal middlewares set via+middlewarenow follows the rou3 1.x syntax, aligned with URLPattern:*matches the rest of the path including/(use:nameto match a single segment). - Update Vite 7.1 or above
pageContext.pageProps.is404removed, usepageContext.is404instead
Automatically synced from CHANGELOG.md