Release Notes
Important
Quasar UI v2.22 or newer is now required for all Quasar application modes.
The new SSG mode API is currently in a short beta stage. Based on the community feedback, its API may change, so check every subsequent releases for potentially such information before upgrading.
The deployed documentation PWA may continue showing cached content until its service worker installs the latest version. As a result, the new SSG and Hybrid SSR + partial CSR documentation might not appear immediately.
Huge new features
This release feels more like a 4.0 (with no breaking changes) for us rather than simply 3.1, but here we go:
- feat(app-vite): Add SSG mode, with optional PWA takeover and partial CSR
- feat(app-vite): Add Hybrid SSR + partial CSR mode
- perf(app-vite): Improve SSR development and production runtime performance
- feat(app-vite): Resolve App Extension assets and injected
~references relative to the extension package, including dependencies nested within its pnpm dependency tree
Other new features
- feat(app-vite): Add support for Pinia v4
- feat(app-vite): Add new
quasar.config > ssroptions:clientSideRenderingRoutes,noPreloadTagRoutes, andextendSSRManifestJson - feat(app-vite): Harden
ctx.modetyping - feat+fix(app-vite): Ensure development and production use the same
serialize-javascriptpackage when needed, providing predictable output - feat(app-vite): Enhance
logger.progress()with an optional{ target?: string; doneAction?: string }parameter - feat(app-vite): Improve SSR manifest and preload processing, including route-specific preload control
- feat(docs): Revamped all Quasar CLI pages. They now include updated and more useful content.
Fixes
- fix(app-vite): Correct numeric environment-variable inference (#18352)
- fix(QTooltip): show on keyboard focus & dismiss with ESC (fix #18241) (#18318)
- fix(app-vite): For the spawned SSR Hono template -> Rewrite request paths when serving an SSR application with Hono and a non-default production
publicPath - fix(app-vite): Correct multi-slash path handling
- fix(app-vite): Correct the
vueDevtoolstype - fix(app-vite): Correct the
capacitor.capacitorCliPreparationParamsconfiguration contract - fix(app-vite): Correctly handle
injectPWAMetaTagswhen provided as a function - fix(app-vite): Wait for temporary Capacitor packages to finish installing before continuing
- fix(app-vite): Correct and align Cordova types
- fix(app-vite): Add the missing Electron
beforePackagingtype - fix(app-vite): Correct
registerQuasarRuntime()usage and types; it was previously declared as asynchronous - fix(app-vite): Correct the
devcommand help, including removal of the unsupported--ideoption and clarification ofquasar run - fix(app-vite): Correct the Cordova development and build banners
- fix(app-vite): Align lifecycle-hook types with their runtime behavior
- fix(app-vite): Correctly update the Browser Extension development folder
- fix(app-vite): Align App Extension APIs with their runtime contracts
- fix(app-vite): Correctly handle environment-variable prefixes containing
$ - fix(app-vite): Add the missing
display_overrideproperty toPwaManifestOptions - fix(app-vite): Align SSG, SSR, and PWA runtime behavior, types, templates, and documentation
Notes on upgrading
If you use @intlify/unplugin-vue-i18n, update its ssr option so it also recognizes SSG mode: ssr: ctx.mode.ssr || ctx.mode.ssg. This ensures the plugin applies the appropriate server-rendering behavior in both SSR and SSG builds.
Donations
Quasar Framework is an open-source MIT-licensed project made possible due to the generous contributions by sponsors and backers. If Quasar is useful in your workflow and you want to support ongoing maintenance, please consider the following: