Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | Type | Update | |---|---|---|---|---|---|---|---| | [@nuxt/content](https://content.nuxt.com) ([source](https://redirect.github.com/nuxt/content)) | [`2.13.2` -> `2.13.4`](https://renovatebot.com/diffs/npm/@nuxt%2fcontent/2.13.2/2.13.4) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@nuxt%2fcontent/2.13.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@nuxt%2fcontent/2.13.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@nuxt%2fcontent/2.13.2/2.13.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@nuxt%2fcontent/2.13.2/2.13.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch | | [@nuxt/kit](https://nuxt.com/docs/api/kit) ([source](https://redirect.github.com/nuxt/nuxt/tree/HEAD/packages/kit)) | [`3.12.4` -> `3.15.0`](https://renovatebot.com/diffs/npm/@nuxt%2fkit/3.12.4/3.15.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@nuxt%2fkit/3.15.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@nuxt%2fkit/3.15.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@nuxt%2fkit/3.12.4/3.15.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@nuxt%2fkit/3.12.4/3.15.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | minor | | [@nuxt/test-utils](https://redirect.github.com/nuxt/test-utils) | [`3.14.0` -> `3.15.1`](https://renovatebot.com/diffs/npm/@nuxt%2ftest-utils/3.14.0/3.15.1) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@nuxt%2ftest-utils/3.15.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@nuxt%2ftest-utils/3.15.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@nuxt%2ftest-utils/3.14.0/3.15.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@nuxt%2ftest-utils/3.14.0/3.15.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | minor | | [@nuxtjs/seo](https://nuxtseo.com/) ([source](https://redirect.github.com/harlan-zw/nuxt-seo)) | [`2.0.0-rc.18` -> `2.0.2`](https://renovatebot.com/diffs/npm/@nuxtjs%2fseo/2.0.0-rc.18/2.0.2) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@nuxtjs%2fseo/2.0.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@nuxtjs%2fseo/2.0.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@nuxtjs%2fseo/2.0.0-rc.18/2.0.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@nuxtjs%2fseo/2.0.0-rc.18/2.0.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch | | [@nuxtjs/tailwindcss](https://redirect.github.com/nuxt-modules/tailwindcss) | [`6.12.1` -> `6.12.2`](https://renovatebot.com/diffs/npm/@nuxtjs%2ftailwindcss/6.12.1/6.12.2) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@nuxtjs%2ftailwindcss/6.12.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@nuxtjs%2ftailwindcss/6.12.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@nuxtjs%2ftailwindcss/6.12.1/6.12.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@nuxtjs%2ftailwindcss/6.12.1/6.12.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch | | [@pinia/nuxt](https://redirect.github.com/vuejs/pinia/tree/v2/packages/nuxt#readme) ([source](https://redirect.github.com/vuejs/pinia)) | [`0.5.3` -> `0.9.0`](https://renovatebot.com/diffs/npm/@pinia%2fnuxt/0.5.3/0.9.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@pinia%2fnuxt/0.9.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@pinia%2fnuxt/0.9.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@pinia%2fnuxt/0.5.3/0.9.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@pinia%2fnuxt/0.5.3/0.9.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor | | [@vee-validate/nuxt](https://vee-validate.logaretm.com/v4/integrations/nuxt) ([source](https://redirect.github.com/logaretm/vee-validate/tree/HEAD/packages/nuxt)) | [`4.13.2` -> `4.15.0`](https://renovatebot.com/diffs/npm/@vee-validate%2fnuxt/4.13.2/4.15.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@vee-validate%2fnuxt/4.15.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@vee-validate%2fnuxt/4.15.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@vee-validate%2fnuxt/4.13.2/4.15.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@vee-validate%2fnuxt/4.13.2/4.15.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | minor | | [@vee-validate/zod](https://vee-validate.logaretm.com/v4/integrations/zod-schema-validation/) ([source](https://redirect.github.com/logaretm/vee-validate/tree/HEAD/packages/zod)) | [`4.13.2` -> `4.15.0`](https://renovatebot.com/diffs/npm/@vee-validate%2fzod/4.13.2/4.15.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@vee-validate%2fzod/4.15.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@vee-validate%2fzod/4.15.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@vee-validate%2fzod/4.13.2/4.15.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@vee-validate%2fzod/4.13.2/4.15.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor | | [nuxt](https://nuxt.com) ([source](https://redirect.github.com/nuxt/nuxt/tree/HEAD/packages/nuxt)) | [`3.12.4` -> `3.15.0`](https://renovatebot.com/diffs/npm/nuxt/3.12.4/3.15.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/nuxt/3.15.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/nuxt/3.15.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/nuxt/3.12.4/3.15.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/nuxt/3.12.4/3.15.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | minor | | [nuxt-auth-utils](https://redirect.github.com/atinux/nuxt-auth-utils) | [`^0.4.2` -> `0.4.4`](https://renovatebot.com/diffs/npm/nuxt-auth-utils/0.4.4/0.4.4) | [![age](https://developer.mend.io/api/mc/badges/age/npm/nuxt-auth-utils/0.4.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/nuxt-auth-utils/0.4.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/nuxt-auth-utils/0.4.4/0.4.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/nuxt-auth-utils/0.4.4/0.4.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | pin | | [pinia](https://redirect.github.com/vuejs/pinia) | [`2.2.1` -> `2.3.0`](https://renovatebot.com/diffs/npm/pinia/2.2.1/2.3.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/pinia/2.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/pinia/2.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/pinia/2.2.1/2.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/pinia/2.2.1/2.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor | | [typescript](https://www.typescriptlang.org/) ([source](https://redirect.github.com/microsoft/TypeScript)) | [`5.5.4` -> `5.7.2`](https://renovatebot.com/diffs/npm/typescript/5.5.4/5.7.2) | [![age](https://developer.mend.io/api/mc/badges/age/npm/typescript/5.7.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/typescript/5.7.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/typescript/5.5.4/5.7.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/typescript/5.5.4/5.7.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor | | [unstorage](https://redirect.github.com/unjs/unstorage) | [`1.12.0` -> `1.14.1`](https://renovatebot.com/diffs/npm/unstorage/1.12.0/1.14.1) | [![age](https://developer.mend.io/api/mc/badges/age/npm/unstorage/1.14.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/unstorage/1.14.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/unstorage/1.12.0/1.14.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/unstorage/1.12.0/1.14.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor | | [vee-validate](https://vee-validate.logaretm.com/) ([source](https://redirect.github.com/logaretm/vee-validate/tree/HEAD/packages/vee-validate)) | [`4.13.2` -> `4.15.0`](https://renovatebot.com/diffs/npm/vee-validate/4.13.2/4.15.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/vee-validate/4.15.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/vee-validate/4.15.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/vee-validate/4.13.2/4.15.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vee-validate/4.13.2/4.15.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor | | [vite](https://vite.dev) ([source](https://redirect.github.com/vitejs/vite/tree/HEAD/packages/vite)) | [`5.4.0` -> `5.4.11`](https://renovatebot.com/diffs/npm/vite/5.4.0/5.4.11) | [![age](https://developer.mend.io/api/mc/badges/age/npm/vite/5.4.11?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/vite/5.4.11?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/vite/5.4.0/5.4.11?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vite/5.4.0/5.4.11?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch | | [zod](https://zod.dev) ([source](https://redirect.github.com/colinhacks/zod)) | [`3.23.8` -> `3.24.1`](https://renovatebot.com/diffs/npm/zod/3.23.8/3.24.1) | [![age](https://developer.mend.io/api/mc/badges/age/npm/zod/3.24.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/zod/3.24.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/zod/3.23.8/3.24.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/zod/3.23.8/3.24.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor | --- ### Release Notes <details> <summary>nuxt/content (@​nuxt/content)</summary> ### [`v2.13.4`](https://redirect.github.com/nuxt/content/blob/HEAD/CHANGELOG.md#v2134) [Compare Source](https://redirect.github.com/nuxt/content/compare/v2.13.3...v2.13.4) [compare changes](https://redirect.github.com/nuxt/content/compare/v2.13.3...v2.13.4) ##### 🏡 Chore - Upgrade `@nuxtjs/mdc` ([0c462d3f](https://redirect.github.com/nuxt/content/commit/0c462d3f)) ##### ❤️ Contributors - Farnabaz <[email protected]> ### [`v2.13.3`](https://redirect.github.com/nuxt/content/blob/HEAD/CHANGELOG.md#v2133) [Compare Source](https://redirect.github.com/nuxt/content/compare/v2.13.2...v2.13.3) [compare changes](https://redirect.github.com/nuxt/content/compare/v2.13.2...v2.13.3) ##### 🩹 Fixes - **module:** Allow using `@nuxtjs/mdc` utils via content module ([#​2775](https://redirect.github.com/nuxt/content/pull/2775)) - **search:** Add `charset=utf-8` to headers of indexed mode ([#​2729](https://redirect.github.com/nuxt/content/pull/2729)) - **docs:** Add warning about using `ssr: false` with Content ([#​2776](https://redirect.github.com/nuxt/content/pull/2776)) - Corrected .gradient class ([#​2723](https://redirect.github.com/nuxt/content/pull/2723)) - **build:** Keep parser deps out of main bundle ([#​2780](https://redirect.github.com/nuxt/content/pull/2780)) - **navigation:** Respect query locale ([#​2772](https://redirect.github.com/nuxt/content/pull/2772)) - Import `defineNitroPlugin` from `#imports` ([34f65172](https://redirect.github.com/nuxt/content/commit/34f65172)) - Respect `draft` key as `_draft` ([#​2738](https://redirect.github.com/nuxt/content/pull/2738)) - Draft field order ([b0b5eb2d](https://redirect.github.com/nuxt/content/commit/b0b5eb2d)) ##### 📖 Documentation - Fix incorrect TS types import path in documentation ([#​2773](https://redirect.github.com/nuxt/content/pull/2773)) - Missing imports and typo in code blocks ([#​2741](https://redirect.github.com/nuxt/content/pull/2741)) - Changed types path ([#​2735](https://redirect.github.com/nuxt/content/pull/2735)) - Fix typo in SSR warning on Installation page ([#​2777](https://redirect.github.com/nuxt/content/pull/2777)) - Update link to downloads count badge ([c1d6ad14](https://redirect.github.com/nuxt/content/commit/c1d6ad14)) ##### 🏡 Chore - Upgrade deps ([18aa97ea](https://redirect.github.com/nuxt/content/commit/18aa97ea)) - Upgrade `@nuxtjs/mdc` ([#​2781](https://redirect.github.com/nuxt/content/pull/2781)) - Upgrade `@nuxtjs/mdc` ([664ac088](https://redirect.github.com/nuxt/content/commit/664ac088)) ##### ❤️ Contributors - Farnabaz <[email protected]> - Bean Deng 邓斌 ([@​HADB](http://github.com/HADB)) - Sébastien Chopin ([@​atinux](http://github.com/atinux)) - EJ Fox ([@​ejfox](http://github.com/ejfox)) - Oh My Neck ([@​hi-zp](http://github.com/hi-zp)) - Michael DeLally ([@​mdelally](http://github.com/mdelally)) - RollingTL ([@​RollingTL](http://github.com/RollingTL)) - Aditya Mathur ([@​MathurAditya724](http://github.com/MathurAditya724)) - 邓超 <2325690622@​qq.com> - Vilius Paliokas ([@​ViliusP](http://github.com/ViliusP)) </details> <details> <summary>nuxt/nuxt (@​nuxt/kit)</summary> ### [`v3.15.0`](https://redirect.github.com/nuxt/nuxt/releases/tag/v3.15.0) [Compare Source](https://redirect.github.com/nuxt/nuxt/compare/v3.14.1592...v3.15.0) #### 👀 Highlights ##### ❄️ Snowfall! Happy holidays! You'll notice when you start Nuxt that (if you're in the Northern Hemisphere) there's some snow on the loading screen ([#​29871](https://redirect.github.com/nuxt/nuxt/pull/29871)). ##### ⚡️ Vite 6 included Nuxt v3.15 includes [Vite 6](https://vite.dev/blog/announcing-vite6) for the first time. Although this is a major version, we expect that this won't be a breaking change for Nuxt users (see full [migration guide](https://vite.dev/guide/migration.html)). However, please take care if you have dependencies that rely on a particular Vite version. One of the most significant changes with Vite 6 is the new Environment API, which we hope to use in conjunction with Nitro to improve the server dev environment. Watch this space! You can read the full list of changes in the [Vite 6 changelog](). ##### 🪵 Chromium devtools improvements We talk a lot about the Nuxt DevTools, but v3.15 ships with better integration in dev mode for Chromium-based browser devtools. We now use the [Chrome DevTools extensibility API](https://developer.chrome.com/docs/devtools/performance/extension) to add support for printing nuxt hook timings in the browser devtools performance panel. ![CleanShot 2024-11-14 at 15 05 22@​2x](https://redirect.github.com/user-attachments/assets/57525027-750a-462f-b713-398302aec0cd) ##### 🗺️ Navigation mode for `callOnce` `callOnce` is a built-in Nuxt composable for running code only once. For example, if the code runs on the server it won't run again on the client. But sometimes you do want code to run on _every navigation_ - just avoid the initial server/client double load. For this, there's a new` mode: 'navigation'\` option that will run the code only once \_per navigation\_. (See [#​30260](https://redirect.github.com/nuxt/nuxt/pull/30260) for more info.) ```ts await callOnce(() => counter.value++, { mode: 'navigation' }) ``` ##### 🥵 HMR for templates, pages + page metadata We now implement hot module reloading for Nuxt's virtual files (like routes, plugins, generated files) as well as for the content of page metadata (within a `definePageMeta` macro) ([#​30113](https://redirect.github.com/nuxt/nuxt/pull/30113)). This should mean you have a faster experience in development, as well as not needing to reload the page when making changes to your routes. ##### 📋 Page meta enhancements We now support extracting extra page meta keys (likely used by module authors) via `experimental.extraPageMetaExtractionKeys` ([#​30015](https://redirect.github.com/nuxt/nuxt/pull/30015)). This enables module authors to use this information at build time, in the `pages:resolved` hook. We also now support local functions in `definePageMeta` ([#​30241](https://redirect.github.com/nuxt/nuxt/pull/30241)). This means you can do something like this: ```ts function validateIdParam(route) { return !!(route.params.id && !isNaN(Number(route.params.id))) } definePageMeta({ validate: validateIdParam, }) ``` ##### 🔥 Performance improvements We now preload the app manifest in the browser if it will be used when hydrating the app ([#​30017](https://redirect.github.com/nuxt/nuxt/pull/30017)). We'll also tree shake vue-router's hash mode history out of your bundle if we can - specifically, if you haven't customised your `app/router.options.ts` ([#​30297](https://redirect.github.com/nuxt/nuxt/pull/30297)). ##### 🐣 v4 updates If A few more changes shipped for the new defaults for v4, including only inlining styles by default for Vue components ([#​30305](https://redirect.github.com/nuxt/nuxt/pull/30305)). #### ✅ Upgrading As usual, our recommendation for upgrading is to run: ```sh npx nuxi@latest upgrade --force ``` This will refresh your lockfile as well, and ensures that you pull in updates from other dependencies that Nuxt relies on, particularly in the unjs ecosystem. #### 👉 Changelog [compare changes](https://redirect.github.com/nuxt/nuxt/compare/v3.14.1592...v3.15.0) ##### 🚀 Enhancements - **deps:** Update dependency vite to v6 (3.x) ([#​30044](https://redirect.github.com/nuxt/nuxt/pull/30044)) - **kit:** Allow module default options to be async ([#​29980](https://redirect.github.com/nuxt/nuxt/pull/29980)) - **nuxt:** Add new types to vue preset ([#​29819](https://redirect.github.com/nuxt/nuxt/pull/29819)) - **nuxt:** Experimental `extraPageMetaExtractionKeys` ([#​30015](https://redirect.github.com/nuxt/nuxt/pull/30015)) - **nuxt,schema:** Allow setting serialisable vue app config ([#​28873](https://redirect.github.com/nuxt/nuxt/pull/28873)) - **nuxt:** Print nuxt hook timings in browser devtools ([#​29922](https://redirect.github.com/nuxt/nuxt/pull/29922)) - **nuxt:** Support vue directive auto-imports within unimport ([#​29818](https://redirect.github.com/nuxt/nuxt/pull/29818)) - **schema:** Add snow effect on loading screen in winter ([#​29871](https://redirect.github.com/nuxt/nuxt/pull/29871)) - **nuxt:** Support local functions in `definePageMeta` ([#​30241](https://redirect.github.com/nuxt/nuxt/pull/30241)) - **nuxt:** Add `mode: 'navigation'` to `callOnce` ([#​30260](https://redirect.github.com/nuxt/nuxt/pull/30260)) ##### 🔥 Performance - **nuxt:** Preload app manifest ([#​30017](https://redirect.github.com/nuxt/nuxt/pull/30017)) - **nuxt:** Use static `hashMode` option ([#​30297](https://redirect.github.com/nuxt/nuxt/pull/30297)) - **vite:** Use vite to clear screen ([#​30315](https://redirect.github.com/nuxt/nuxt/pull/30315)) - **schema:** Only inline styles for vue components ([#​30305](https://redirect.github.com/nuxt/nuxt/pull/30305)) - **nuxt:** Remove useId from composable key plugin ([#​30328](https://redirect.github.com/nuxt/nuxt/pull/30328)) ##### 🩹 Fixes - **nuxt:** Check if nuxt link observer is null ([#​30038](https://redirect.github.com/nuxt/nuxt/pull/30038)) - **nuxt:** Unref the default value of asyncData when clearing ([#​30041](https://redirect.github.com/nuxt/nuxt/pull/30041)) - **kit:** Re-export `addServerTemplate` ([a02af2348](https://redirect.github.com/nuxt/nuxt/commit/a02af2348)) - Remove unused dependencies and tidy project ([#​30043](https://redirect.github.com/nuxt/nuxt/pull/30043)) - **vite:** Add back some dev-bundler dependencies ([976024f16](https://redirect.github.com/nuxt/nuxt/commit/976024f16)) - **nuxt:** Do not persist `extraExtractionKeys` on runtime `route.meta` ([ae9f42f4a](https://redirect.github.com/nuxt/nuxt/commit/ae9f42f4a)) - **nuxt:** Allow array/object `style` value for head components ([#​29999](https://redirect.github.com/nuxt/nuxt/pull/29999)) - **nuxt:** Tidy up remnants of previous `useId` implementation ([40f437d25](https://redirect.github.com/nuxt/nuxt/commit/40f437d25)) - **kit,nuxt:** Provide `buildDir` to `normalizeTemplate` ([#​30115](https://redirect.github.com/nuxt/nuxt/pull/30115)) - **kit:** Add better logging for non-resolved modules ([#​30116](https://redirect.github.com/nuxt/nuxt/pull/30116)) - **nuxt:** Correct return type of `useRequestFetch` ([#​30117](https://redirect.github.com/nuxt/nuxt/pull/30117)) - **nuxt,vite:** Hmr for templates, pages + page metadata ([#​30113](https://redirect.github.com/nuxt/nuxt/pull/30113)) - **nuxt:** Use `nitropack` rather than `nitro` import ([2d5b53b23](https://redirect.github.com/nuxt/nuxt/commit/2d5b53b23)) - **kit:** Use resolved module paths for transpile + modulesDir ([#​30136](https://redirect.github.com/nuxt/nuxt/pull/30136)) - Update `engines.node` to match dependencies ([#​30139](https://redirect.github.com/nuxt/nuxt/pull/30139)) - **schema:** Allow `routerOptions.history` to return null ([#​30192](https://redirect.github.com/nuxt/nuxt/pull/30192)) - **nuxt:** Render client page directly when not hydrating ([#​30061](https://redirect.github.com/nuxt/nuxt/pull/30061)) - **nuxt:** Use `useId` for island client component teleport id ([#​30151](https://redirect.github.com/nuxt/nuxt/pull/30151)) - **nuxt:** De-default async layout components ([#​30203](https://redirect.github.com/nuxt/nuxt/pull/30203)) - **nuxt:** Correct types for `nuxt` and `nuxt/app` ([#​30148](https://redirect.github.com/nuxt/nuxt/pull/30148)) - **nuxt,schema:** Allow showing spa loader til after hydration ([#​29776](https://redirect.github.com/nuxt/nuxt/pull/29776)) - **nuxt:** Remove whitespace around spa loading template ([070bd103c](https://redirect.github.com/nuxt/nuxt/commit/070bd103c)) - **nuxt:** Hoist environment types ([#​30230](https://redirect.github.com/nuxt/nuxt/pull/30230)) - **schema:** Hoist nitro runtime types ([73761dade](https://redirect.github.com/nuxt/nuxt/commit/73761dade)) - **nuxt:** Ensure `getRouteRules` works with nitro signature ([#​30277](https://redirect.github.com/nuxt/nuxt/pull/30277)) - **nuxt:** Respect `replace` in middleware with `navigateTo` ([#​30283](https://redirect.github.com/nuxt/nuxt/pull/30283)) - **nuxt:** Update import paths for `nitropack` ([f220314a5](https://redirect.github.com/nuxt/nuxt/commit/f220314a5)) - **nuxt:** Don't use `<RouterLink>` for links starting with `#` ([#​30190](https://redirect.github.com/nuxt/nuxt/pull/30190)) - **vite:** Ignore optimising `#app-manifest` ([ec613e533](https://redirect.github.com/nuxt/nuxt/commit/ec613e533)) - **nuxt:** Use `useId` for `client-fallback` component uid ([#​30314](https://redirect.github.com/nuxt/nuxt/pull/30314)) - **schema:** Gate inline style change behind v4 check ([ceac86e34](https://redirect.github.com/nuxt/nuxt/commit/ceac86e34)) - **nuxt:** Do not resolve deep imports for `@vitest/` ([4171a1076](https://redirect.github.com/nuxt/nuxt/commit/4171a1076)) - **kit:** Initialize tsconfig paths in `addTemplate` if undefined ([#​30348](https://redirect.github.com/nuxt/nuxt/pull/30348)) - **nuxt:** Treat client useAsyncData calls as async boundaries ([#​30343](https://redirect.github.com/nuxt/nuxt/pull/30343)) - **nuxt:** Initialise `import.meta.hot.data` ([b1cf5781d](https://redirect.github.com/nuxt/nuxt/commit/b1cf5781d)) ##### 💅 Refactors - Move `composable-keys` plugin into nuxt core ([#​30029](https://redirect.github.com/nuxt/nuxt/pull/30029)) - **nuxt:** Simplify and improve core plugins that parse ast ([#​30088](https://redirect.github.com/nuxt/nuxt/pull/30088)) - **nuxt:** Prefix all core modules with `nuxt:` ([#​30028](https://redirect.github.com/nuxt/nuxt/pull/30028)) ##### 📖 Documentation - Remove extra new line in frontmatter ([#​30031](https://redirect.github.com/nuxt/nuxt/pull/30031)) - Text capitalization for titles ([#​30054](https://redirect.github.com/nuxt/nuxt/pull/30054)) - Mention that type checking can happen in dev ([#​30012](https://redirect.github.com/nuxt/nuxt/pull/30012)) - Fix typos in punctuation ([#​30006](https://redirect.github.com/nuxt/nuxt/pull/30006)) - Remove duplicate information about preprocessor variables ([#​30002](https://redirect.github.com/nuxt/nuxt/pull/30002)) - Format text case for consistency ([#​30073](https://redirect.github.com/nuxt/nuxt/pull/30073)) - Add a section about `event.waitUntil` ([#​29583](https://redirect.github.com/nuxt/nuxt/pull/29583)) - Improve wording ([#​30106](https://redirect.github.com/nuxt/nuxt/pull/30106)) - Update configuration files format ([#​30087](https://redirect.github.com/nuxt/nuxt/pull/30087)) - Update links to `vite.dev` ([#​30111](https://redirect.github.com/nuxt/nuxt/pull/30111)) - Fix incorrect vite docs link ([#​30112](https://redirect.github.com/nuxt/nuxt/pull/30112)) - Add note about using bun runtime ([#​30019](https://redirect.github.com/nuxt/nuxt/pull/30019)) - Add giget limitation in nuxt layers documentation ([#​30122](https://redirect.github.com/nuxt/nuxt/pull/30122)) - Correct vite link ([#​30135](https://redirect.github.com/nuxt/nuxt/pull/30135)) - Add `nuxi upgrade` channel flag ([#​30184](https://redirect.github.com/nuxt/nuxt/pull/30184)) - Add note about awaiting `useLazyFetch` ([#​30171](https://redirect.github.com/nuxt/nuxt/pull/30171)) - Add missing comma in upgrade doc code sample ([#​30189](https://redirect.github.com/nuxt/nuxt/pull/30189)) - Added options and option definitions for sourcemap ([#​30201](https://redirect.github.com/nuxt/nuxt/pull/30201)) - Add shared directory documentation ([#​29816](https://redirect.github.com/nuxt/nuxt/pull/29816)) - Document `vite.css.preprocessorMaxWorkers` ([eb1ba017c](https://redirect.github.com/nuxt/nuxt/commit/eb1ba017c)) - Handle zero-length string ([cf74b4c98](https://redirect.github.com/nuxt/nuxt/commit/cf74b4c98)) - Update nitro links + fix link checking ([#​30228](https://redirect.github.com/nuxt/nuxt/pull/30228)) - Add a note about `compatibilityVersion` feature flag ([#​30274](https://redirect.github.com/nuxt/nuxt/pull/30274)) - Update auto-imports to advertise the scan feature ([#​30292](https://redirect.github.com/nuxt/nuxt/pull/30292)) - Update `nuxi` command pages ([#​30199](https://redirect.github.com/nuxt/nuxt/pull/30199)) - Update migration documentation for `inlineStyles` ([2660bffbc](https://redirect.github.com/nuxt/nuxt/commit/2660bffbc)) - Add bluesky link ([#​30322](https://redirect.github.com/nuxt/nuxt/pull/30322)) - Add recipe for session and authentication ([#​27287](https://redirect.github.com/nuxt/nuxt/pull/27287)) - Fix filename for prerendering page ([#​30333](https://redirect.github.com/nuxt/nuxt/pull/30333)) - Add spacing ([#​30331](https://redirect.github.com/nuxt/nuxt/pull/30331)) ##### 🏡 Chore - Ignore typescript update for now ([10f08011c](https://redirect.github.com/nuxt/nuxt/commit/10f08011c)) - Refresh lockfile ([2cdd04c62](https://redirect.github.com/nuxt/nuxt/commit/2cdd04c62)) - Don't ignore typescript, but upgrade it separately ([149477467](https://redirect.github.com/nuxt/nuxt/commit/149477467)) - Pin `unimport` ([7ee455969](https://redirect.github.com/nuxt/nuxt/commit/7ee455969)) - Upgrade unimport separately ([dcf8bda04](https://redirect.github.com/nuxt/nuxt/commit/dcf8bda04)) - Add `installed-check` dependency ([0e84cb9a4](https://redirect.github.com/nuxt/nuxt/commit/0e84cb9a4)) - Remove unimport from isolation ([9d7f70ec0](https://redirect.github.com/nuxt/nuxt/commit/9d7f70ec0)) - Migrate renovate config ([#​30214](https://redirect.github.com/nuxt/nuxt/pull/30214)) - Update bundle size snapshot ([b88ad0765](https://redirect.github.com/nuxt/nuxt/commit/b88ad0765)) - Downgrade `engines.node` to reflect only deps ([d3d276919](https://redirect.github.com/nuxt/nuxt/commit/d3d276919)) - Remove (unused) `rimraf` ([cf9d82c5a](https://redirect.github.com/nuxt/nuxt/commit/cf9d82c5a)) - Remove outdated comment ([#​30324](https://redirect.github.com/nuxt/nuxt/pull/30324)) - Cleanup renovate ([6e682b1ff](https://redirect.github.com/nuxt/nuxt/commit/6e682b1ff)) - Document `div` wrapper in client-only page ([#​30359](https://redirect.github.com/nuxt/nuxt/pull/30359)) ##### ✅ Tests - Add additional attw test for built packages ([#​30206](https://redirect.github.com/nuxt/nuxt/pull/30206)) - Improve assertions for spa loading tests ([80bd2d2ec](https://redirect.github.com/nuxt/nuxt/commit/80bd2d2ec)) - Bump bundle size snapshot ([d545f9e96](https://redirect.github.com/nuxt/nuxt/commit/d545f9e96)) - Try to improve spa preloader tests ([08219a502](https://redirect.github.com/nuxt/nuxt/commit/08219a502)) - Ensure dev server is loaded before running tests ([f66cf928e](https://redirect.github.com/nuxt/nuxt/commit/f66cf928e)) ##### 🤖 CI - Ignore dev-dependencies for engines.node ([e366a6feb](https://redirect.github.com/nuxt/nuxt/commit/e366a6feb)) - Analyse github actions with codeql ([#​30293](https://redirect.github.com/nuxt/nuxt/pull/30293)) - Exclude file that codeql cannot analyse ([7e03b08a6](https://redirect.github.com/nuxt/nuxt/commit/7e03b08a6)) ##### ❤️ Contributors - Daniel Roe ([@​danielroe](https://redirect.github.com/danielroe)) - Julien Huang ([@​huang-julien](https://redirect.github.com/huang-julien)) - Mehmet ([@​productdevbook](https://redirect.github.com/productdevbook)) - [@​beer](https://redirect.github.com/beer) ([@​iiio2](https://redirect.github.com/iiio2)) - Nishant Aanjaney Jalan ([@​cybercoder-naj](https://redirect.github.com/cybercoder-naj)) - David Nahodyl ([@​Smef](https://redirect.github.com/Smef)) - Vuk Marjanovic ([@​vmrjnvc](https://redirect.github.com/vmrjnvc)) - Alexander Lichter ([@​TheAlexLichter](https://redirect.github.com/TheAlexLichter)) - Bobbie Goede ([@​BobbieGoede](https://redirect.github.com/BobbieGoede)) - Connor Roberts ([@​murshex](https://redirect.github.com/murshex)) - Matej Černý ([@​cernymatej](https://redirect.github.com/cernymatej)) - derHodrig ([@​derHodrig](https://redirect.github.com/derHodrig)) - Martins Zeltins ([@​martinszeltins](https://redirect.github.com/martinszeltins)) - Matt ([@​matt-clegg](https://redirect.github.com/matt-clegg)) - Nikolay ([@​RokeAlvo](https://redirect.github.com/RokeAlvo)) - Joaquín Sánchez ([@​userquin](https://redirect.github.com/userquin)) - bjoaquinc ([@​bjoaquinc](https://redirect.github.com/bjoaquinc)) - wzc520pyfm ([@​wzc520pyfm](https://redirect.github.com/wzc520pyfm)) - Kraig Burrows ([@​zync09](https://redirect.github.com/zync09)) - Lucie ([@​lihbr](https://redirect.github.com/lihbr)) - Harlan Wilton ([@​harlan-zw](https://redirect.github.com/harlan-zw)) - 一纸忘忧 ([@​ikxin](https://redirect.github.com/ikxin)) - Sébastien LeBlanc ([@​mrleblanc101](https://redirect.github.com/mrleblanc101)) - Teena ([@​franklin-tina](https://redirect.github.com/franklin-tina)) - skmedix ([@​skmedix](https://redirect.github.com/skmedix)) - Daniel Rentz ([@​danielrentz](https://redirect.github.com/danielrentz)) - Inesh Bose ([@​ineshbose](https://redirect.github.com/ineshbose)) - Felix Gabler ([@​felixgabler](https://redirect.github.com/felixgabler)) - Damian Głowala ([@​DamianGlowala](https://redirect.github.com/DamianGlowala)) - mianlang ([@​mianlang](https://redirect.github.com/mianlang)) - Tamás H. ([@​Tamas-hi](https://redirect.github.com/Tamas-hi)) - xjccc ([@​xjccc](https://redirect.github.com/xjccc)) - Guillaume Chau ([@​Akryum](https://redirect.github.com/Akryum)) - Farnabaz ([@​farnabaz](https://redirect.github.com/farnabaz)) ### [`v3.14.1592`](https://redirect.github.com/nuxt/nuxt/releases/tag/v3.14.1592) [Compare Source](https://redirect.github.com/nuxt/nuxt/compare/v3.14.159...v3.14.1592) > 3.14.1592 is the next patch release. #### 👉 Changelog [compare changes](https://redirect.github.com/nuxt/nuxt/compare/v3.14.159...v3.14.160) ##### 🩹 Fixes - **rspack:** Update `webpackbar` with support for rspack ([#​29823](https://redirect.github.com/nuxt/nuxt/pull/29823)) - **nuxt:** Assign default name to component without setup ([#​29869](https://redirect.github.com/nuxt/nuxt/pull/29869)) - **kit:** Use `dst` to deduplicate templates when adding them ([#​29895](https://redirect.github.com/nuxt/nuxt/pull/29895)) - **nuxt:** Handle empty plugin files ([d44408e87](https://redirect.github.com/nuxt/nuxt/commit/d44408e87)) - **vite:** Use resolved nuxt template `dst` to invalidate modules ([6cd3352de](https://redirect.github.com/nuxt/nuxt/commit/6cd3352de)) - **nuxt:** Return null map for empty plugin metadata ([302a66da9](https://redirect.github.com/nuxt/nuxt/commit/302a66da9)) - **kit:** Resolve module paths before appending subpaths ([#​29955](https://redirect.github.com/nuxt/nuxt/pull/29955)) - **nuxt:** Recompile templates on `change` events ([#​29954](https://redirect.github.com/nuxt/nuxt/pull/29954)) - **nuxt:** Do not include `<NuxtWelcome>` when building ([#​29956](https://redirect.github.com/nuxt/nuxt/pull/29956)) - **nuxt:** Allow scanning metadata from 2+ files at same path ([#​29969](https://redirect.github.com/nuxt/nuxt/pull/29969)) - **nuxt:** Do not disallow importing nitro dependencies ([#​29975](https://redirect.github.com/nuxt/nuxt/pull/29975)) ##### 💅 Refactors - **nuxt:** Define layouts as async vue components ([#​29957](https://redirect.github.com/nuxt/nuxt/pull/29957)) ##### 📖 Documentation - Update custom environment example ([e3759ad55](https://redirect.github.com/nuxt/nuxt/commit/e3759ad55)) - Update minimal example ([7973f5ed4](https://redirect.github.com/nuxt/nuxt/commit/7973f5ed4)) - Add tip about islands directory ([#​29913](https://redirect.github.com/nuxt/nuxt/pull/29913)) - Fix typo in composable name ([#​29910](https://redirect.github.com/nuxt/nuxt/pull/29910)) - Rename [@​nuxt/auth](https://redirect.github.com/nuxt/auth) to [@​nuxt/auth-utils](https://redirect.github.com/nuxt/auth-utils) in roadmap ([#​29906](https://redirect.github.com/nuxt/nuxt/pull/29906)) - Capitalize text ([#​29938](https://redirect.github.com/nuxt/nuxt/pull/29938)) - Improve clarity in seo meta example ([#​29930](https://redirect.github.com/nuxt/nuxt/pull/29930)) - Update getting started to include WebStorm ([#​29845](https://redirect.github.com/nuxt/nuxt/pull/29845)) ##### 🏡 Chore - Remove unused imports and update eslint config ([#​29876](https://redirect.github.com/nuxt/nuxt/pull/29876)) ##### ✅ Tests - Add import protection test ([fbd5c33ba](https://redirect.github.com/nuxt/nuxt/commit/fbd5c33ba)) ##### 🤖 CI - Remove release-pr workflow ([2915f93c3](https://redirect.github.com/nuxt/nuxt/commit/2915f93c3)) ##### ❤️ Contributors - Daniel Roe ([@​danielroe](https://redirect.github.com/danielroe)) - Gustavo Aquino Torres Teixeira ([@​guska8](https://redirect.github.com/guska8)) - Stephanie Smith ([@​stephiescastle](https://redirect.github.com/stephiescastle)) - [@​beer](https://redirect.github.com/beer) ([@​iiio2](https://redirect.github.com/iiio2)) - Maxime Pauvert ([@​maximepvrt](https://redirect.github.com/maximepvrt)) - crisarji ([@​crisarji](https://redirect.github.com/crisarji)) - RBV1 ([@​RBV1](https://redirect.github.com/RBV1)) - Adrien Foulon ([@​Tofandel](https://redirect.github.com/Tofandel)) - Julien Huang ([@​huang-julien](https://redirect.github.com/huang-julien)) - Horu ([@​HigherOrderLogic](https://redirect.github.com/HigherOrderLogic)) - Jan-Niklas W. ([@​niklas-wortmann](https://redirect.github.com/niklas-wortmann)) ### [`v3.14.159`](https://redirect.github.com/nuxt/nuxt/releases/tag/v3.14.159) [Compare Source](https://redirect.github.com/nuxt/nuxt/compare/v3.14.0...v3.14.159) > 3.14.159 is a hotfix release to address regressions in v3.14. We're leaning into the π theme - future patch releases of this minor version will just continue adding digits. (Sorry for any inconvenience! 😆) ##### 👉 Changelog [compare changes](https://redirect.github.com/nuxt/nuxt/compare/v3.14.0...v3.14.1) ##### 🩹 Fixes - **nuxt:** Update nitropack preset directory ([#​29780](https://redirect.github.com/nuxt/nuxt/pull/29780)) - **kit:** Fall back to meta version if there's no `module.json` ([#​29793](https://redirect.github.com/nuxt/nuxt/pull/29793)) - **kit:** Use `mlly` to resolve module paths to avoid cjs fallback ([#​29799](https://redirect.github.com/nuxt/nuxt/pull/29799)) - **webpack,rspack:** Add adapter for `webpack-dev-middleware` ([#​29806](https://redirect.github.com/nuxt/nuxt/pull/29806)) - **nuxt:** Remove null-byte prefix for virtual files ([#​29809](https://redirect.github.com/nuxt/nuxt/pull/29809)) - **kit:** Convert module path to file url before reading meta ([fb833ac64](https://redirect.github.com/nuxt/nuxt/commit/fb833ac64)) ##### 📖 Documentation - Capitalize titles ([#​29768](https://redirect.github.com/nuxt/nuxt/pull/29768)) - Fix rou3 link in nitro.js ([#​29775](https://redirect.github.com/nuxt/nuxt/pull/29775)) - Fix tip formatting ([#​29792](https://redirect.github.com/nuxt/nuxt/pull/29792)) - Add link to h3 blogpost ([#​29794](https://redirect.github.com/nuxt/nuxt/pull/29794)) - Remove outdated cloudflare tip (auto minify deprecated) ([#​29812](https://redirect.github.com/nuxt/nuxt/pull/29812)) ##### 🏡 Chore - **nuxt:** Remove redundant type ([#​29810](https://redirect.github.com/nuxt/nuxt/pull/29810)) ##### ❤️ Contributors - Daniel Roe ([@​danielroe](https://redirect.github.com/danielroe)) - xjccc ([@​xjccc](https://redirect.github.com/xjccc)) - Efraim ([@​EfraimGENC](https://redirect.github.com/EfraimGENC)) - Aurion SARL ([@​Aurion72](https://redirect.github.com/Aurion72)) - Erik Lilja ([@​Lilja](https://redirect.github.com/Lilja)) - Markus Oberlehner ([@​maoberlehner](https://redirect.github.com/maoberlehner)) - Lukas Bauer ([@​luxterful](https://redirect.github.com/luxterful)) - [@​beer](https://redirect.github.com/beer) ([@​iiio2](https://redirect.github.com/iiio2)) ### [`v3.14.0`](https://redirect.github.com/nuxt/nuxt/releases/tag/v3.14.0) [Compare Source](https://redirect.github.com/nuxt/nuxt/compare/v3.13.2...v3.14.0) > 3.14.0 is the next minor release. ##### 👀 Highlights Behind the scenes, a lot has been going on in preparation for the release of Nuxt v4 (particularly on the `unjs` side with preparations for Nitro v3!) ##### ⚡️ Faster starts powered by `jiti` Loading the nuxt config file, as well as modules and other build-time code, is now powered by `jiti` v2. You can see more about the release in the [jiti v2 release notes](https://redirect.github.com/unjs/jiti/releases/tag/v2.0.0), but one of the most important pieces is native node esm import (where possible), which should mean a faster start. ✨ ##### 📂 Shared folder for code and types shared with client/server You should never import Vue app code in your nitro code (or the other way around). But this has meant a friction point when it comes to sharing types or utilities that *don't* rely on the nitro/vue contexts. For this, we have a new `shared/` folder ([#​28682](https://redirect.github.com/nuxt/nuxt/pull/28682)). You can't import Vue or nitro code *into* files in this folder, but it produces auto-imports you can consume throughout the rest of your app. If needed you can use the new `#shared` alias which points to this folder. The shared folder is alongside your `server/` folder. (If you're using `compatibilityVersion: 4`, this means it's not inside your `app/` folder.) ##### 🦀 `rspack` builder We're excited to announce a new first-class Nuxt builder for `rspack`. It's still experimental but we've refactored the internal Nuxt virtual file system to use `unplugin` to make this possible. Let us know if you like it - and feel free to raise any issues you experience with it. 👉 To try it out, you can use [this starter](https://redirect.github.com/danielroe/nuxt-rspack-starter) - or just install `@nuxt/rspack-builder` and set `builder: 'rspack'` in your nuxt config file. ##### ✨ New composables We have new `useResponseHeader` and `useRuntimeHook` composables ([#​27131](https://redirect.github.com/nuxt/nuxt/pull/27131) and [#​29741](https://redirect.github.com/nuxt/nuxt/pull/29741)). ##### 🔧 New module utilities We now have a new `addServerTemplate` utility ([#​29320](https://redirect.github.com/nuxt/nuxt/pull/29320)) for adding virtual files for access inside nitro runtime routes. ##### 🚧 v4 changes We've merged some changes which only take effect with `compatibilityVersion: 4`, but which you can opt-into earlier. 1. previously, if you had a component like `~/components/App/Header.vue` this would be visible in your devtools as `<Header>`. From v4 we ensure this is `<AppHeader>`, but it's opt-in to avoid breaking any manual `<KeepAlive>` you might have implemented. ([#​28745](https://redirect.github.com/nuxt/nuxt/pull/28745)). 2. Nuxt scans page metadata from your files, before calling `pages:extend`. But this has led to some confusing behaviour, as pages added at this point do not end up having their page metadata respected. So we now do not scan metadata before calling `pages:extend`. Instead, we have a new `pages:resolved` hook, which is called after `pages:extend`, after all pages have been augmented with their metadata. I'd recommend opting into this by setting `experimental.scanPageMeta` to `after-resolve`, as it solves a number of bugs. ##### 🗺️ Roadmap to v3.15 They didn't quite make it in time for v3.14 but for the next minor release you can expect (among other things): - \[ ] auto-imported directives from modules ([#​29203](https://redirect.github.com/nuxt/nuxt/pull/29203)) - \[ ] 'isolated' page renders ([#​29366](https://redirect.github.com/nuxt/nuxt/pull/29366)) - \[ ] delayed hydration ([#​26468](https://redirect.github.com/nuxt/nuxt/pull/26468)) ##### ✅ Upgrading As usual, our recommendation for upgrading is to run: ```sh npx nuxi@latest upgrade --force ``` This will refresh your lockfile as well, and ensures that you pull in updates from other dependencies that Nuxt relies on, particularly in the unjs ecosystem. ##### 👉 Changelog [compare changes](https://redirect.github.com/nuxt/nuxt/compare/v3.13.2...v3.14.0) ##### 🚀 Enhancements - **deps:** Upgrade to latest version of jiti ([#​27995](https://redirect.github.com/nuxt/nuxt/pull/27995)) - **kit,nuxt,vite,webpack:** Reimplement cjs utils using `jiti` ([#​29073](https://redirect.github.com/nuxt/nuxt/pull/29073)) - **nuxt:** Normalise component names to match nuxt pattern ([#​28745](https://redirect.github.com/nuxt/nuxt/pull/28745)) - **kit,schema:** Add `addServerTemplate` utility ([#​29320](https://redirect.github.com/nuxt/nuxt/pull/29320)) - **nuxt:** Add `useResponseHeader` composable ([#​27131](https://redirect.github.com/nuxt/nuxt/pull/27131)) - **rspack,webpack:** Add `rspack` builder ([#​29142](https://redirect.github.com/nuxt/nuxt/pull/29142)) - **nuxt,schema:** `pages:resolved` hook + scan meta post extend ([#​28861](https://redirect.github.com/nuxt/nuxt/pull/28861)) - **nuxt:** Allow enabling route props in `definePageMeta` ([#​29586](https://redirect.github.com/nuxt/nuxt/pull/29586)) - **schema,nuxt:** Add `shared/` folder and `#shared` alias ([#​28682](https://redirect.github.com/nuxt/nuxt/pull/28682)) - **nuxt:** Allow chunk error or manifest update -> reload ([#​28160](https://redirect.github.com/nuxt/nuxt/pull/28160)) - **nuxt:** Add `useRuntimeHook` composable ([#​29741](https://redirect.github.com/nuxt/nuxt/pull/29741)) ##### 🔥 Performance - **nuxt:** Remove unneeded second call to `useNuxtApp` ([#​29514](https://redirect.github.com/nuxt/nuxt/pull/29514)) - **vite:** Avoid redundant postcss plugins overwrite ([#​29619](https://redirect.github.com/nuxt/nuxt/pull/29619)) - **kit,nuxt,vite,webpack:** Hoist regex patterns ([#​29620](https://redirect.github.com/nuxt/nuxt/pull/29620)) ##### 🩹 Fixes - **nuxt:** Simplify plugin `InjectionType` template conditional ([#​29023](https://redirect.github.com/nuxt/nuxt/pull/29023)) - **nuxt:** Access server build from `webpack` memfs ([#​29027](https://redirect.github.com/nuxt/nuxt/pull/29027)) - **nuxt:** Do not resolve non-absolute component paths ([#​29036](https://redirect.github.com/nuxt/nuxt/pull/29036)) - **nuxt:** Defer unsetting error handler until suspense resolves ([#​29037](https://redirect.github.com/nuxt/nuxt/pull/29037)) - **nuxt:** Pass `DOMException` as fetch abort exception ([#​29058](https://redirect.github.com/nuxt/nuxt/pull/29058)) - **vite:** Don't force protocol if disabled `devServer.https` ([#​29049](https://redirect.github.com/nuxt/nuxt/pull/29049)) - **nuxt:** Empty nitro `buildDir` in dev mode ([#​29068](https://redirect.github.com/nuxt/nuxt/pull/29068)) - **nuxt:** Don't resolve relative import type paths for deps ([#​29069](https://redirect.github.com/nuxt/nuxt/pull/29069)) - **kit:** Handle passing 'bare' relative paths to modules ([c7fecd8a1](https://redirect.github.com/nuxt/nuxt/commit/c7fecd8a1)) - **kit:** Try resolving module path from each node_modules dir ([70a622d43](https://redirect.github.com/nuxt/nuxt/commit/70a622d43)) - **kit,vite,webpack:** Resolve postcss paths from each modules dir ([#​29096](https://redirect.github.com/nuxt/nuxt/pull/29096)) - **kit,vite,webpack:** Strip `node_modules/` from parent urls ([5bd42c893](https://redirect.github.com/nuxt/nuxt/commit/5bd42c893)) - **nuxt:** Add `crossorigin` attribute for stylesheets ([#​29138](https://redirect.github.com/nuxt/nuxt/pull/29138)) - **nuxt:** Use `routeRules` to hint pages to prerender ([#​29172](https://redirect.github.com/nuxt/nuxt/pull/29172)) - **nuxt:** Pass absolute external link urls to `link:prefetch` ([#​29321](https://redirect.github.com/nuxt/nuxt/pull/29321)) - **nuxt:** Error on build when required module is missing ([#​29287](https://redirect.github.com/nuxt/nuxt/pull/29287)) - **nuxt:** Prevent 404 when hitting component test endpoint ([cb725f014](https://redirect.github.com/nuxt/nuxt/commit/cb725f014)) - **nuxt:** Avoid throwing 404 error before middleware finishes ([#​29054](https://redirect.github.com/nuxt/nuxt/pull/29054)) - **schema:** Use `ConfigLayer` type from `c12` ([#​29370](https://redirect.github.com/nuxt/nuxt/pull/29370)) - **nuxt:** Fix nested page types in `typedPages` ([#​29352](https://redirect.github.com/nuxt/nuxt/pull/29352)) - **nuxt:** Allow islands to manipulate head client-side ([#​29186](https://redirect.github.com/nuxt/nuxt/pull/29186)) - **vite:** Dim repeat count in logs ([#​29392](https://redirect.github.com/nuxt/nuxt/pull/29392)) - **schema:** Mark `configFile` as required in layer type ([3bbcd7d21](https://redirect.github.com/nuxt/nuxt/commit/3bbcd7d21)) - **nuxt:** Remove vue compiler hints from auto import ([#​29713](https://redirect.github.com/nuxt/nuxt/pull/29713)) - **vite:** Update signature for `createIsExternal` ([686be8168](https://redirect.github.com/nuxt/nuxt/commit/686be8168)) - **nuxt:** Respect existing `props` value in `definePageMeta` ([#​29683](https://redirect.github.com/nuxt/nuxt/pull/29683)) - **schema:** Hoist `nitropack/types` to ensure api routes are typed ([54096875e](https://redirect.github.com/nuxt/nuxt/commit/54096875e)) ##### 💅 Refactors - **nuxt:** Use `addBuildPlugin` internally ([#​29157](https://redirect.github.com/nuxt/nuxt/pull/29157)) - **nuxt,schema,vite,webpack:** Use unplugin for vfs ([#​29165](https://redirect.github.com/nuxt/nuxt/pull/29165)) ##### 📖 Documentation - Use `defineNuxtComponent` instead of `defineComponent` ([#​29011](https://redirect.github.com/nuxt/nuxt/pull/29011)) - Remove duotone icons for clarity ([#​29040](https://redirect.github.com/nuxt/nuxt/pull/29040)) - Fix typo ([#​29045](https://redirect.github.com/nuxt/nuxt/pull/29045)) - Remove specific Nuxt 4 release date ([#​29151](https://redirect.github.com/nuxt/nuxt/pull/29151)) - Remove redundant newlines and indentations ([#​29190](https://redirect.github.com/nuxt/nuxt/pull/29190)) - Add links to short videos from daniel ([#​29185](https://redirect.github.com/nuxt/nuxt/pull/29185)) - Fix comments typo in auto-imports example ([#​29195](https://redirect.github.com/nuxt/nuxt/pull/29195)) - Add missing word ([#​29230](https://redirect.github.com/nuxt/nuxt/pull/29230)) - Add a section about `useRequestFetch` and `event.$fetch` ([#​29099](https://redirect.github.com/nuxt/nuxt/pull/29099)) - Add example of typing custom `useFetch` errors ([#​29253](https://redirect.github.com/nuxt/nuxt/pull/29253)) - Ensure manifest code snippet works with pnpm ([#​29273](https://redirect.github.com/nuxt/nuxt/pull/29273)) - Consistent directory structure ([#​29292](https://redirect.github.com/nuxt/nuxt/pull/29292)) - Update to new `ofetch` headers for interceptors ([#​29118](https://redirect.github.com/nuxt/nuxt/pull/29118)) - Mention upgrading third-party configs ([#​27768](https://redirect.github.com/nuxt/nuxt/pull/27768)) - Improve explanation of ssr + data fetching ([#​29010](https://redirect.github.com/nuxt/nuxt/pull/29010)) - Add a description for `.env.test` ([#​29398](https://redirect.github.com/nuxt/nuxt/pull/29398)) - Add section on 'updateAppConfig' in the 'app.config' page ([#​29397](https://redirect.github.com/nuxt/nuxt/pull/29397)) - Add example to navigateTo util ([#​29611](https://redirect.github.com/nuxt/nuxt/pull/29611)) - Remove `mockImplementation()` call ([#​29669](https://redirect.github.com/nuxt/nuxt/pull/29669)) - Update lifecycle hooks ([#​29678](https://redirect.github.com/nuxt/nuxt/pull/29678)) - Type cast api plugin in custom usefetch example ([#​29756](https://redirect.github.com/nuxt/nuxt/pull/29756)) - Correct some errors about proxying headers with `$fetch` ([#​29755](https://redirect.github.com/nuxt/nuxt/pull/29755)) - Add information on `--envName` flag ([#​28909](https://redirect.github.com/nuxt/nuxt/pull/28909)) - Add error expectation ([09885b87e](https://redirect.github.com/nuxt/nuxt/commit/09885b87e)) ##### 📦 Build - **ui-templates:** Switch to `beasties` ([1b5391182](https://redirect.github.com/nuxt/nuxt/commit/1b5391182)) ##### 🏡 Chore - Add more checks around indexed access ([#​29060](https://redirect.github.com/nuxt/nuxt/pull/29060)) - Refresh lockfile ([f76f85a82](https://redirect.github.com/nuxt/nuxt/commit/f76f85a82)) - Revert `unbuild` update ([71e0fb06f](https://redirect.github.com/nuxt/nuxt/commit/71e0fb06f)) - Use `jiti.import` ([7ece49f9b](https://redirect.github.com/nuxt/nuxt/commit/7ece49f9b)) - Update nitropack to 2.10.2 ([#​29766](https://redirect.github.com/nuxt/nuxt/pull/29766)) ##### ✅ Tests - Bump bundle snapshot ([e57e65c08](https://redirect.github.com/nuxt/nuxt/commit/e57e65c08)) - Add basic assertions for `unctx` transform ([d81196122](https://redirect.github.com/nuxt/nuxt/commit/d81196122)) - Fix assertion for style snapshot ([7f311e773](https://redirect.github.com/nuxt/nuxt/commit/7f311e773)) - Move catchall path to subdirectory ([#​29331](https://redirect.github.com/nuxt/nuxt/pull/29331)) - Update snapshot for [https://github.com/nuxt/nuxt/pull/28441](https://redirect.github.com/nuxt/nuxt/pull/28441) ([a248f24f5](https://redirect.github.com/nuxt/nuxt/commit/a248f24f5)) - Add compat code for vite v6 ([#​29677](https://redirect.github.com/nuxt/nuxt/pull/29677)) ##### 🤖 CI - Rspack semantic scope ([db65d2165](https://redirect.github.com/nuxt/nuxt/commit/db65d2165)) - Update lychee config ([#​29162](https://redirect.github.com/nuxt/nuxt/pull/29162)) - Release dependency updates on nightly channel ([271149bd2](https://redirect.github.com/nuxt/nuxt/commit/271149bd2)) ##### ❤️ Contributors - Daniel Roe ([@​danielroe](https://redirect.github.com/danielroe)) - xjccc ([@​xjccc](https://redirect.github.com/xjccc)) - Pooya Parsa ([@​pi0](https://redirect.github.com/pi0)) - Damian Głowala ([@​DamianGlowala](https://redirect.github.com/DamianGlowala)) - Till Sanders ([@​tillsanders](https://redirect.github.com/tillsanders)) - Nils ([@​BracketJohn](https://redirect.github.com/BracketJohn)) - Estéban ([@​Barbapapazes](https://redirect.github.com/Barbapapazes)) - John Tanzer ([@​moshetanzer](https://redirect.github.com/moshetanzer)) - Cruz ([@​SparK-Cruz](https://redirect.github.com/SparK-Cruz)) - Anthony Fu ([@​antfu](https://redirect.github.com/antfu)) - 翠 / green ([@​sapphi-red](https://redirect.github.com/sapphi-red)) - Taras Batenkov ([@​enkot](https://redirect.github.com/enkot)) - Michael Brevard ([@​GalacticHypernova](https://redirect.github.com/GalacticHypernova)) - Bobbie Goede ([@​BobbieGoede](https://redirect.github.com/BobbieGoede)) - Panopoulos Andreas ([@​b0ul17](https://redirect.github.com/b0ul17)) - Julien Huang ([@​huang-julien](https://redirect.github.com/huang-julien)) - Dawit ([@​oneminch](https://redirect.github.com/oneminch)) - Ryota Watanabe ([@​wattanx](https://redirect.github.com/wattanx)) - Alexander ([@​hywax](https://redirect.github.com/hywax)) - Ryoya ([@​harunari0928](https://redirect.github.com/harunari0928)) - Jelmer ([@​jelmerdemaat](https://redirect.github.com/jelmerdemaat)) - Nishant Aanjaney Jalan ([@​cybercoder-naj](https://redirect.github.com/cybercoder-naj)) - Christoph Heike ([@​cheike569](https://redirect.github.com/cheike569)) - Sébastien Chopin ([@​atinux](https://redirect.github.com/atinux)) - Jeremy Graziani ([@​AcelisWeaven](https://redirect.github.com/AcelisWeaven)) - Domenik Reitzner ([@​dreitzner](https://redirect.github.com/dreitzner)) - Jeel Rupapara ([@​zeelrupapara](https://redirect.github.com/zeelrupapara)) - Matej Černý ([@​CernyMatej](https://redirect.github.com/CernyMatej)) - Leopold Kristjansson ([@​leopoldkristjansson](https://redirect.github.com/leopoldkristjansson) </details> --- ### Configuration 📅 **Schedule**: Branch creation - "on the 2nd through 5th day of the month" (UTC), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://redirect.github.com/renovatebot/renovate/discussions) if that's undesired. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/JabRef/JabRefOnline). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC45Ny4wIiwidXBkYXRlZEluVmVyIjoiMzkuODAuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==--> --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Tobias Diez <[email protected]>
- Loading branch information