Releases: QwikDev/qwik
@builder.io/[email protected]
@builder.io/[email protected]
@builder.io/[email protected]
Minor Changes
-
✨ Major improvements to prefetching with automatic bundle preloading (by @wmertens in #7453)
- This removes the need for service workers, and instead utilize
modulepreload
link tags for better browser integration. - Improves initial load performance by including dynamic imports in the prefetch
- Reduces complexity while maintaining similar (and even better) functionality
- Enables some preloading capabilities in dev mode (SSR result only)
- Includes path-to-bundle mapping in bundle graph (this improves the experience using the
<Link>
component, AKA "single page app" mode) - Server now has built-in manifest support (so no need to pass
manifest
around) - Moves insights-related build code to insights plugin
⚠️ ATTENTION:- Keep your service worker code as is (either
<ServiceWorkerRegister/>
or<PrefetchServiceWorker/>
). - Configure your server to provide long caching headers.
Service Worker:
This new implementation will use it to uninstall the current service worker to reduce the unnecessary duplication.
The builtin service workers components are deprecated but still exist for backwards compatibility.
⚠️ IMPORTANT: Caching Headers:The files under build/ and assets/ are named with their content hash and may therefore be cached indefinitely. Typically you should serve
build/*
andassets/*
withCache-Control: public, max-age=31536000, immutable
.However, if you changed the rollup configuration for output filenames, you will have to adjust the caching configuration accordingly.
You can configure the preload behavior in your SSR configuration:
// entry.ssr.ts export default function (opts: RenderToStreamOptions) { return renderToStream(<Root />, { preload: { // Enable debug logging for preload operations debug: true, // Maximum simultaneous preload links maxIdlePreloads: 5, // Minimum probability threshold for preloading preloadProbability: 0.25 // ...and more, see the type JSDoc on hover }, ...opts, }); }
Optional for legacy apps:
For legacy apps that still need service worker functionality, you can add it back using:
npm run qwik add service-worker
This will add a basic service worker setup that you can customize for specific caching strategies, offline support, or other PWA features beyond just prefetching.
- This removes the need for service workers, and instead utilize
Patch Changes
-
🐞🩹 linting errors which were previously being ignored across the monorepo. (by @better-salmon in #7418)
-
🐞🩹 now qwikloader is loaded only once in all cases (by @wmertens in #7506)
@builder.io/[email protected]
@builder.io/[email protected]
@builder.io/[email protected]
Minor Changes
-
🐞🩹 qwik-city no longer forces
q-data.json
downloads, instead relying on the cache headers. This means that you have to make sure yourq-data.json
is served withCache-Control
headers that suit you. That file contains all the information about the route and is read for each qwik-city navigation. By default the data is cached for one hour. (by @wmertens in #7537) -
🛠 the service workers have been deprecated and replaced with entries that unregister them. If you have it enabled in production, you can remove it after a while once you are sure all your users have the new version. (by @wmertens in #7453)
Patch Changes
[email protected]
[email protected]
@qwik.dev/[email protected]
@qwik.dev/[email protected]
@qwik.dev/[email protected]
@qwik.dev/[email protected]
Patch Changes
-
🐞🩹 infinity loop while tracking element ref (by @Varixo in #7574)
-
🐞🩹 add HTMLElementAttrs and SVGProps types to exports (by @JerryWu1234 in #7510)
-
🐞🩹 Introduce retry logic for QRL resolution to handle potential promise retries, ensuring robustness in asynchronous operations. (by @JerryWu1234 in #7470)
-
🐞🩹 signal wrapper should not rerender causing missing child error (by @Varixo in #7550)
-
🐞🩹 inflating text nodes from single shared text node (by @Varixo in #7538)