{"releases":[{"id":83191822,"tag":"v3.0.0-rc.14","author":"pi0","name":"v3.0.0-rc.14","draft":false,"prerelease":false,"createdAt":"2022-11-16T02:38:42Z","publishedAt":"2022-11-16T02:42:54Z","markdown":"> **Note**\r\n> This is the last release candidate for Nuxt v3! Are you ready?  👀\r\n\r\n👉 [Release Discussion](https://github.com/nuxt/framework/discussions/9032)\r\n\r\n## Changelog\r\n\r\n[compare changes](https://github.com/nuxt/framework/compare/v3.0.0-rc.13...v3.0.0-rc.14)\r\n\r\n#### ⚠️  Breaking Changes\r\n\r\n  - **cli:** Setup nuxt globally with `nuxt test` ([#4578](https://github.com/nuxt/framework/pull/4578))\r\n  - **nuxt:** Only add `$f` fetch prefix to auto-keys ([#8852](https://github.com/nuxt/framework/pull/8852))\r\n  - **test-utils:** Use `vitest/node` subpath export ([#8815](https://github.com/nuxt/framework/pull/8815))\r\n  - **nuxt:** Remove `initialCache` option ([#8885](https://github.com/nuxt/framework/pull/8885))\r\n  - **nuxt:** Enable payload extraction only for `nuxi generate` ([#9018](https://github.com/nuxt/framework/pull/9018))\r\n  - **nuxt:** Include request url and params in `useFetch` key ([#6632](https://github.com/nuxt/framework/pull/6632))\r\n  - **nuxt:** Fix typo for `NuxtRenderHTMLContext.bodyPrepend` ([#8712](https://github.com/nuxt/framework/pull/8712)) ([#8704](https://github.com/nuxt/framework/pull/8704))\r\n  - **nuxt:** Remove support for `404.vue` shorthand ([#8809](https://github.com/nuxt/framework/pull/8809))\r\n  - **kit:** Remove support for module container ([#9010](https://github.com/nuxt/framework/pull/9010))\r\n  - **nuxt:** Move `head` option support into `defineNuxtComponent` ([#8901](https://github.com/nuxt/framework/pull/8901))\r\n  - Remove deprecated api ([#9029](https://github.com/nuxt/framework/pull/9029))\r\n        - Remove `PrivateRuntimeConfig` interface support\r\n        - Remove `autoImports` option\r\n        - Remove `autoImports:extend` hook support\r\n        - Remove deprecated `addAutoImport` and `addAutoImport` utilities (use `addImports` and `addImportsDir`)\r\n        - Remove `defer` option for `useAsyncData`\r\n        - Remove support for `installModule(nuxt, nuxtModule)`\r\n        - Remove support for module defenition as function\r\n        - Remove support for `name` in module definition (use `meta.name`)\r\n        - Remove deprecated `throwError` (use `showError`)\r\n        - Remove deprecated `useActiveRoute` (use `useRoute`)\r\n        - Remove deprecated `NuxtConfig` and `defineNuxtConfig` imports from `nuxt` (import from `nuxt/config`)\r\n        - Remove deprecated `<Script>` component (use `useHead`)\r\n        - Remove deprecated `RouterConfigOptions` interface (use `RouterConfigSerializable`)\r\n        - Remove deprecated `fileName` for template options (use `filename`)\r\n        - Remove deprecated `<NuxtNestedPage>` and `<NuxtChild>` components\r\n        - Remove deprecated `buildModules` config\r\n        - Remove deprecated `privateRuntimeConfig` and `publicRuntimeConfig` options\r\n        - Remove deprecated `imports.presets[].name` (use `presets.imports` instead)\r\n\r\n\r\n### 🚀 Enhancements\r\n\r\n  - **nuxt:** Add `isExternal` to `<NuxtLink>` slot props ([#8800](https://github.com/nuxt/framework/pull/8800))\r\n  - **nuxt:** Auto-import `utils/` directory ([#8817](https://github.com/nuxt/framework/pull/8817))\r\n  - **cli:** Wrap and normalize all console outputs ([#8846](https://github.com/nuxt/framework/pull/8846))\r\n  - **nuxt:** Allow customizing root id and tag ([#8883](https://github.com/nuxt/framework/pull/8883))\r\n  - **nuxt:** Add `onBeforeRouteLeave` and `onBeforeRouteUpdate` composables ([#8889](https://github.com/nuxt/framework/pull/8889))\r\n  - **cli:** ⚠️  Setup nuxt globally with `nuxt test` ([#4578](https://github.com/nuxt/framework/pull/4578))\r\n  - **cli:** Auto-generate `.npmrc` and setting for pnpm ([#7407](https://github.com/nuxt/framework/pull/7407))\r\n  - **nuxt, schema:** Migrate to @vueuse/head v1 ([#8975](https://github.com/nuxt/framework/pull/8975))\r\n\r\n### 🩹 Fixes\r\n\r\n  - **nuxt:** Check if global transitions are activated for scroll behavior ([#8700](https://github.com/nuxt/framework/pull/8700))\r\n  - **nuxt:** Allow cookies to be set to `null` to unset them ([#8769](https://github.com/nuxt/framework/pull/8769))\r\n  - **nuxt:** Add catchall paths to prerender list ([#8782](https://github.com/nuxt/framework/pull/8782))\r\n  - **schema:** Add declarations to ignore list ([#8787](https://github.com/nuxt/framework/pull/8787))\r\n  - **ssr:** Ensure `useRequestHeaders` are case-insensitive ([#8805](https://github.com/nuxt/framework/pull/8805))\r\n  - **nuxt:** Do not render page if we are throwing error ([#8821](https://github.com/nuxt/framework/pull/8821))\r\n  - **nuxt:** Swallow issues with query selectors ([#8843](https://github.com/nuxt/framework/pull/8843))\r\n  - **nuxt:** ⚠️  Only add `$f` fetch prefix to auto-keys ([#8852](https://github.com/nuxt/framework/pull/8852))\r\n  - **test-utils:** Detect project root using `nuxt.config` with `.mjs` and `.cjs` extensions ([#8855](https://github.com/nuxt/framework/pull/8855))\r\n  - **cli:** Exclude `dist` from type checking ([#8848](https://github.com/nuxt/framework/pull/8848))\r\n  - **test-utils:** ⚠️  Use `vitest/node` subpath export ([#8815](https://github.com/nuxt/framework/pull/8815))\r\n  - **nuxt:** Detect non-functional imports within page meta ([#8881](https://github.com/nuxt/framework/pull/8881))\r\n  - **nuxt:** Preserve render errors ([#8884](https://github.com/nuxt/framework/pull/8884))\r\n  - **nuxt:** ⚠️  Remove `initialCache` option ([#8885](https://github.com/nuxt/framework/pull/8885))\r\n  - **nuxt:** Use `app.baseURL` when fetching error page on server ([#8888](https://github.com/nuxt/framework/pull/8888))\r\n  - **nuxt:** Avoid passing attrs to default slot for `<ClientOnly>` component ([#8921](https://github.com/nuxt/framework/pull/8921))\r\n  - **vite:** Add extend layers to `fs.allow` ([#9006](https://github.com/nuxt/framework/pull/9006))\r\n  - **nuxt:** Include layers in esbuild transform ([#9014](https://github.com/nuxt/framework/pull/9014))\r\n  - **kit:** Add external module to transpile ([#8963](https://github.com/nuxt/framework/pull/8963))\r\n  - **nuxt:** ⚠️  Enable payload extraction only for `nuxi generate` ([#9018](https://github.com/nuxt/framework/pull/9018))\r\n  - **nuxt:** ⚠️  Include request url and params in `useFetch` key ([#6632](https://github.com/nuxt/framework/pull/6632))\r\n  - **nuxt:** Improve hmr for pages macros ([#8940](https://github.com/nuxt/framework/pull/8940))\r\n\r\n### 💅 Refactors\r\n\r\n  - **nuxt:** ⚠️  Fix typo for `NuxtRenderHTMLContext.bodyPrepend` ([#8712](https://github.com/nuxt/framework/pull/8712))\r\n  - **nuxt:** ⚠️  Fix typo for `NuxtRenderHTMLContext.bodyPrepend` ([#8704](https://github.com/nuxt/framework/pull/8704))\r\n  - **nuxt:** ⚠️  Remove support for `404.vue` shorthand ([#8809](https://github.com/nuxt/framework/pull/8809))\r\n  - **nuxt:** Explicitly import app in nuxt-root ([#8729](https://github.com/nuxt/framework/pull/8729))\r\n  - **kit:** ⚠️  Remove support for module container ([#9010](https://github.com/nuxt/framework/pull/9010))\r\n  - Update unjs dependencies to stable v1 ([#9011](https://github.com/nuxt/framework/pull/9011))\r\n  - **nuxt:** ⚠️  Move `head` option support into `defineNuxtComponent` ([#8901](https://github.com/nuxt/framework/pull/8901))\r\n- ⚠️  Remove deprecated api ([#9029](https://github.com/nuxt/framework/pull/9029))\r\n\r\n### 📖 Documentation\r\n\r\n  - Update 2.nuxt-page.md ([#8761](https://github.com/nuxt/framework/pull/8761))\r\n  - Update roadmap for november ([#8766](https://github.com/nuxt/framework/pull/8766))\r\n  - Use update import for `defineLazyEventHandler` ([#8767](https://github.com/nuxt/framework/pull/8767))\r\n  - Remove stability-edge ([507f444c](https://github.com/nuxt/framework/commit/507f444c))\r\n  - **deployment:** Remove usage of custom icons ([8e4068b7](https://github.com/nuxt/framework/commit/8e4068b7))\r\n  - Improve examples content ([1582f8ec](https://github.com/nuxt/framework/commit/1582f8ec))\r\n  - **api:** Add `useRequestHeaders` composable example ([#8833](https://github.com/nuxt/framework/pull/8833))\r\n  - Add entry for `extendPages` ([#8860](https://github.com/nuxt/framework/pull/8860))\r\n  - **api:** Add `refreshNuxtData` util examples ([#8845](https://github.com/nuxt/framework/pull/8845))\r\n  - Get event before running async function ([#8861](https://github.com/nuxt/framework/pull/8861))\r\n  - **api:** Add `useHydration` composable ([#8768](https://github.com/nuxt/framework/pull/8768))\r\n  - Add `query` option with example for `useFetch` ([#8719](https://github.com/nuxt/framework/pull/8719))\r\n  - Add initial documentation for router composables ([#8895](https://github.com/nuxt/framework/pull/8895))\r\n  - Add tls option to redis example ([#8900](https://github.com/nuxt/framework/pull/8900))\r\n  - Fix syntax errors in server storage example ([#8906](https://github.com/nuxt/framework/pull/8906))\r\n  - Fix typo ([#8970](https://github.com/nuxt/framework/pull/8970))\r\n  - **api:** Add spaces to avoid breaking mobile layout ([#8967](https://github.com/nuxt/framework/pull/8967))\r\n  - Typo in `available` ([#8966](https://github.com/nuxt/framework/pull/8966))\r\n  - Add a bit more detail in the `definePageMeta` warning to specify it needs to be in a page ([#8923](https://github.com/nuxt/framework/pull/8923))\r\n  - Match the open graph protocol markup ([#8959](https://github.com/nuxt/framework/pull/8959))\r\n  - Fix typos ([#8976](https://github.com/nuxt/framework/pull/8976))\r\n\r\n### ❤️  Contributors\r\n\r\n- Anthony Fu <anthonyfu117@hotmail.com>\r\n- Daniel Roe <daniel@roe.dev>\r\n- Pooya Parsa ([@pi0](http://github.com/pi0))\r\n- Harlan Wilton ([@harlan-zw](http://github.com/harlan-zw))\r\n- Mehdi HosseinZade ([@xtoolkit](http://github.com/xtoolkit))\r\n- Silvesterwali\r\n- Israel Ortuño <ai.ortuno@gmail.com>\r\n- Kevin Olson ([@acidjazz](http://github.com/acidjazz))\r\n- Julien Huang\r\n- Okoro Redemption ([@therealokoro](http://github.com/therealokoro))\r\n- Clément Ollivier ([@clemcode](http://github.com/clemcode))\r\n- Cedric Wetzel ([@cedWetzel](http://github.com/cedWetzel))\r\n- Percy Ma ([@kecrily](http://github.com/kecrily))\r\n- Ali Soueidan\r\n- Toby Faux\r\n- Stefan <stefan@standa.de>\r\n- Krutie Patel <krutie.patel@gmail.com>\r\n- Horu\r\n- Cue\r\n- Alexander Lichter ([@manniL](http://github.com/manniL))\r\n- Sébastien Chopin ([@Atinux](http://github.com/Atinux))\r\n- Iljs Путлер Капут <ilja@kotir.space>\r\n- Maxim Morev ([@MorevM](http://github.com/MorevM))\r\n- Agénor Debriat ([@agenordebriat](http://github.com/agenordebriat))\r\n- Cx33 ([@JiatLn](http://github.com/JiatLn))\r\n\r\n","html":"<blockquote>\n<p><strong>Note</strong>\nThis is the last release candidate for Nuxt v3! Are you ready?  👀</p>\n</blockquote>\n<p>👉 <a href=\"https://github.com/nuxt/framework/discussions/9032\">Release Discussion</a></p>\n<div class=\"markdown-heading\"><h2 class=\"heading-element\">Changelog</h2><a id=\"user-content-changelog\" class=\"anchor\" aria-label=\"Permalink: Changelog\" href=\"#changelog\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<p><a href=\"https://github.com/nuxt/framework/compare/v3.0.0-rc.13...v3.0.0-rc.14\">compare changes</a></p>\n<div class=\"markdown-heading\"><h4 class=\"heading-element\"><g-emoji class=\"g-emoji\" alias=\"warning\">⚠️</g-emoji>  Breaking Changes</h4><a id=\"user-content-️--breaking-changes\" class=\"anchor\" aria-label=\"Permalink: ⚠️  Breaking Changes\" href=\"#️--breaking-changes\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<ul>\n<li>\n<strong>cli:</strong> Setup nuxt globally with <code>nuxt test</code> (<a href=\"https://github.com/nuxt/framework/pull/4578\">#4578</a>)</li>\n<li>\n<strong>nuxt:</strong> Only add <code>$f</code> fetch prefix to auto-keys (<a href=\"https://github.com/nuxt/framework/pull/8852\">#8852</a>)</li>\n<li>\n<strong>test-utils:</strong> Use <code>vitest/node</code> subpath export (<a href=\"https://github.com/nuxt/framework/pull/8815\">#8815</a>)</li>\n<li>\n<strong>nuxt:</strong> Remove <code>initialCache</code> option (<a href=\"https://github.com/nuxt/framework/pull/8885\">#8885</a>)</li>\n<li>\n<strong>nuxt:</strong> Enable payload extraction only for <code>nuxi generate</code> (<a href=\"https://github.com/nuxt/framework/pull/9018\">#9018</a>)</li>\n<li>\n<strong>nuxt:</strong> Include request url and params in <code>useFetch</code> key (<a href=\"https://github.com/nuxt/framework/pull/6632\">#6632</a>)</li>\n<li>\n<strong>nuxt:</strong> Fix typo for <code>NuxtRenderHTMLContext.bodyPrepend</code> (<a href=\"https://github.com/nuxt/framework/pull/8712\">#8712</a>) (<a href=\"https://github.com/nuxt/framework/pull/8704\">#8704</a>)</li>\n<li>\n<strong>nuxt:</strong> Remove support for <code>404.vue</code> shorthand (<a href=\"https://github.com/nuxt/framework/pull/8809\">#8809</a>)</li>\n<li>\n<strong>kit:</strong> Remove support for module container (<a href=\"https://github.com/nuxt/framework/pull/9010\">#9010</a>)</li>\n<li>\n<strong>nuxt:</strong> Move <code>head</code> option support into <code>defineNuxtComponent</code> (<a href=\"https://github.com/nuxt/framework/pull/8901\">#8901</a>)</li>\n<li>Remove deprecated api (<a href=\"https://github.com/nuxt/framework/pull/9029\">#9029</a>)\n- Remove <code>PrivateRuntimeConfig</code> interface support\n- Remove <code>autoImports</code> option\n- Remove <code>autoImports:extend</code> hook support\n- Remove deprecated <code>addAutoImport</code> and <code>addAutoImport</code> utilities (use <code>addImports</code> and <code>addImportsDir</code>)\n- Remove <code>defer</code> option for <code>useAsyncData</code>\n- Remove support for <code>installModule(nuxt, nuxtModule)</code>\n- Remove support for module defenition as function\n- Remove support for <code>name</code> in module definition (use <code>meta.name</code>)\n- Remove deprecated <code>throwError</code> (use <code>showError</code>)\n- Remove deprecated <code>useActiveRoute</code> (use <code>useRoute</code>)\n- Remove deprecated <code>NuxtConfig</code> and <code>defineNuxtConfig</code> imports from <code>nuxt</code> (import from <code>nuxt/config</code>)\n- Remove deprecated <code>&lt;Script&gt;</code> component (use <code>useHead</code>)\n- Remove deprecated <code>RouterConfigOptions</code> interface (use <code>RouterConfigSerializable</code>)\n- Remove deprecated <code>fileName</code> for template options (use <code>filename</code>)\n- Remove deprecated <code>&lt;NuxtNestedPage&gt;</code> and <code>&lt;NuxtChild&gt;</code> components\n- Remove deprecated <code>buildModules</code> config\n- Remove deprecated <code>privateRuntimeConfig</code> and <code>publicRuntimeConfig</code> options\n- Remove deprecated <code>imports.presets[].name</code> (use <code>presets.imports</code> instead)</li>\n</ul>\n<div class=\"markdown-heading\"><h3 class=\"heading-element\">🚀 Enhancements</h3><a id=\"user-content--enhancements\" class=\"anchor\" aria-label=\"Permalink: 🚀 Enhancements\" href=\"#-enhancements\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<ul>\n<li>\n<strong>nuxt:</strong> Add <code>isExternal</code> to <code>&lt;NuxtLink&gt;</code> slot props (<a href=\"https://github.com/nuxt/framework/pull/8800\">#8800</a>)</li>\n<li>\n<strong>nuxt:</strong> Auto-import <code>utils/</code> directory (<a href=\"https://github.com/nuxt/framework/pull/8817\">#8817</a>)</li>\n<li>\n<strong>cli:</strong> Wrap and normalize all console outputs (<a href=\"https://github.com/nuxt/framework/pull/8846\">#8846</a>)</li>\n<li>\n<strong>nuxt:</strong> Allow customizing root id and tag (<a href=\"https://github.com/nuxt/framework/pull/8883\">#8883</a>)</li>\n<li>\n<strong>nuxt:</strong> Add <code>onBeforeRouteLeave</code> and <code>onBeforeRouteUpdate</code> composables (<a href=\"https://github.com/nuxt/framework/pull/8889\">#8889</a>)</li>\n<li>\n<strong>cli:</strong> <g-emoji class=\"g-emoji\" alias=\"warning\">⚠️</g-emoji>  Setup nuxt globally with <code>nuxt test</code> (<a href=\"https://github.com/nuxt/framework/pull/4578\">#4578</a>)</li>\n<li>\n<strong>cli:</strong> Auto-generate <code>.npmrc</code> and setting for pnpm (<a href=\"https://github.com/nuxt/framework/pull/7407\">#7407</a>)</li>\n<li>\n<strong>nuxt, schema:</strong> Migrate to @vueuse/head v1 (<a href=\"https://github.com/nuxt/framework/pull/8975\">#8975</a>)</li>\n</ul>\n<div class=\"markdown-heading\"><h3 class=\"heading-element\">🩹 Fixes</h3><a id=\"user-content--fixes\" class=\"anchor\" aria-label=\"Permalink: 🩹 Fixes\" href=\"#-fixes\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<ul>\n<li>\n<strong>nuxt:</strong> Check if global transitions are activated for scroll behavior (<a href=\"https://github.com/nuxt/framework/pull/8700\">#8700</a>)</li>\n<li>\n<strong>nuxt:</strong> Allow cookies to be set to <code>null</code> to unset them (<a href=\"https://github.com/nuxt/framework/pull/8769\">#8769</a>)</li>\n<li>\n<strong>nuxt:</strong> Add catchall paths to prerender list (<a href=\"https://github.com/nuxt/framework/pull/8782\">#8782</a>)</li>\n<li>\n<strong>schema:</strong> Add declarations to ignore list (<a href=\"https://github.com/nuxt/framework/pull/8787\">#8787</a>)</li>\n<li>\n<strong>ssr:</strong> Ensure <code>useRequestHeaders</code> are case-insensitive (<a href=\"https://github.com/nuxt/framework/pull/8805\">#8805</a>)</li>\n<li>\n<strong>nuxt:</strong> Do not render page if we are throwing error (<a href=\"https://github.com/nuxt/framework/pull/8821\">#8821</a>)</li>\n<li>\n<strong>nuxt:</strong> Swallow issues with query selectors (<a href=\"https://github.com/nuxt/framework/pull/8843\">#8843</a>)</li>\n<li>\n<strong>nuxt:</strong> <g-emoji class=\"g-emoji\" alias=\"warning\">⚠️</g-emoji>  Only add <code>$f</code> fetch prefix to auto-keys (<a href=\"https://github.com/nuxt/framework/pull/8852\">#8852</a>)</li>\n<li>\n<strong>test-utils:</strong> Detect project root using <code>nuxt.config</code> with <code>.mjs</code> and <code>.cjs</code> extensions (<a href=\"https://github.com/nuxt/framework/pull/8855\">#8855</a>)</li>\n<li>\n<strong>cli:</strong> Exclude <code>dist</code> from type checking (<a href=\"https://github.com/nuxt/framework/pull/8848\">#8848</a>)</li>\n<li>\n<strong>test-utils:</strong> <g-emoji class=\"g-emoji\" alias=\"warning\">⚠️</g-emoji>  Use <code>vitest/node</code> subpath export (<a href=\"https://github.com/nuxt/framework/pull/8815\">#8815</a>)</li>\n<li>\n<strong>nuxt:</strong> Detect non-functional imports within page meta (<a href=\"https://github.com/nuxt/framework/pull/8881\">#8881</a>)</li>\n<li>\n<strong>nuxt:</strong> Preserve render errors (<a href=\"https://github.com/nuxt/framework/pull/8884\">#8884</a>)</li>\n<li>\n<strong>nuxt:</strong> <g-emoji class=\"g-emoji\" alias=\"warning\">⚠️</g-emoji>  Remove <code>initialCache</code> option (<a href=\"https://github.com/nuxt/framework/pull/8885\">#8885</a>)</li>\n<li>\n<strong>nuxt:</strong> Use <code>app.baseURL</code> when fetching error page on server (<a href=\"https://github.com/nuxt/framework/pull/8888\">#8888</a>)</li>\n<li>\n<strong>nuxt:</strong> Avoid passing attrs to default slot for <code>&lt;ClientOnly&gt;</code> component (<a href=\"https://github.com/nuxt/framework/pull/8921\">#8921</a>)</li>\n<li>\n<strong>vite:</strong> Add extend layers to <code>fs.allow</code> (<a href=\"https://github.com/nuxt/framework/pull/9006\">#9006</a>)</li>\n<li>\n<strong>nuxt:</strong> Include layers in esbuild transform (<a href=\"https://github.com/nuxt/framework/pull/9014\">#9014</a>)</li>\n<li>\n<strong>kit:</strong> Add external module to transpile (<a href=\"https://github.com/nuxt/framework/pull/8963\">#8963</a>)</li>\n<li>\n<strong>nuxt:</strong> <g-emoji class=\"g-emoji\" alias=\"warning\">⚠️</g-emoji>  Enable payload extraction only for <code>nuxi generate</code> (<a href=\"https://github.com/nuxt/framework/pull/9018\">#9018</a>)</li>\n<li>\n<strong>nuxt:</strong> <g-emoji class=\"g-emoji\" alias=\"warning\">⚠️</g-emoji>  Include request url and params in <code>useFetch</code> key (<a href=\"https://github.com/nuxt/framework/pull/6632\">#6632</a>)</li>\n<li>\n<strong>nuxt:</strong> Improve hmr for pages macros (<a href=\"https://github.com/nuxt/framework/pull/8940\">#8940</a>)</li>\n</ul>\n<div class=\"markdown-heading\"><h3 class=\"heading-element\">💅 Refactors</h3><a id=\"user-content--refactors\" class=\"anchor\" aria-label=\"Permalink: 💅 Refactors\" href=\"#-refactors\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<ul>\n<li>\n<strong>nuxt:</strong> <g-emoji class=\"g-emoji\" alias=\"warning\">⚠️</g-emoji>  Fix typo for <code>NuxtRenderHTMLContext.bodyPrepend</code> (<a href=\"https://github.com/nuxt/framework/pull/8712\">#8712</a>)</li>\n<li>\n<strong>nuxt:</strong> <g-emoji class=\"g-emoji\" alias=\"warning\">⚠️</g-emoji>  Fix typo for <code>NuxtRenderHTMLContext.bodyPrepend</code> (<a href=\"https://github.com/nuxt/framework/pull/8704\">#8704</a>)</li>\n<li>\n<strong>nuxt:</strong> <g-emoji class=\"g-emoji\" alias=\"warning\">⚠️</g-emoji>  Remove support for <code>404.vue</code> shorthand (<a href=\"https://github.com/nuxt/framework/pull/8809\">#8809</a>)</li>\n<li>\n<strong>nuxt:</strong> Explicitly import app in nuxt-root (<a href=\"https://github.com/nuxt/framework/pull/8729\">#8729</a>)</li>\n<li>\n<strong>kit:</strong> <g-emoji class=\"g-emoji\" alias=\"warning\">⚠️</g-emoji>  Remove support for module container (<a href=\"https://github.com/nuxt/framework/pull/9010\">#9010</a>)</li>\n<li>Update unjs dependencies to stable v1 (<a href=\"https://github.com/nuxt/framework/pull/9011\">#9011</a>)</li>\n<li>\n<strong>nuxt:</strong> <g-emoji class=\"g-emoji\" alias=\"warning\">⚠️</g-emoji>  Move <code>head</code> option support into <code>defineNuxtComponent</code> (<a href=\"https://github.com/nuxt/framework/pull/8901\">#8901</a>)</li>\n<li><g-emoji class=\"g-emoji\" alias=\"warning\">⚠️</g-emoji>  Remove deprecated api (<a href=\"https://github.com/nuxt/framework/pull/9029\">#9029</a>)</li>\n</ul>\n<div class=\"markdown-heading\"><h3 class=\"heading-element\">📖 Documentation</h3><a id=\"user-content--documentation\" class=\"anchor\" aria-label=\"Permalink: 📖 Documentation\" href=\"#-documentation\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<ul>\n<li>Update 2.nuxt-page.md (<a href=\"https://github.com/nuxt/framework/pull/8761\">#8761</a>)</li>\n<li>Update roadmap for november (<a href=\"https://github.com/nuxt/framework/pull/8766\">#8766</a>)</li>\n<li>Use update import for <code>defineLazyEventHandler</code> (<a href=\"https://github.com/nuxt/framework/pull/8767\">#8767</a>)</li>\n<li>Remove stability-edge (<a href=\"https://github.com/nuxt/framework/commit/507f444c\">507f444c</a>)</li>\n<li>\n<strong>deployment:</strong> Remove usage of custom icons (<a href=\"https://github.com/nuxt/framework/commit/8e4068b7\">8e4068b7</a>)</li>\n<li>Improve examples content (<a href=\"https://github.com/nuxt/framework/commit/1582f8ec\">1582f8ec</a>)</li>\n<li>\n<strong>api:</strong> Add <code>useRequestHeaders</code> composable example (<a href=\"https://github.com/nuxt/framework/pull/8833\">#8833</a>)</li>\n<li>Add entry for <code>extendPages</code> (<a href=\"https://github.com/nuxt/framework/pull/8860\">#8860</a>)</li>\n<li>\n<strong>api:</strong> Add <code>refreshNuxtData</code> util examples (<a href=\"https://github.com/nuxt/framework/pull/8845\">#8845</a>)</li>\n<li>Get event before running async function (<a href=\"https://github.com/nuxt/framework/pull/8861\">#8861</a>)</li>\n<li>\n<strong>api:</strong> Add <code>useHydration</code> composable (<a href=\"https://github.com/nuxt/framework/pull/8768\">#8768</a>)</li>\n<li>Add <code>query</code> option with example for <code>useFetch</code> (<a href=\"https://github.com/nuxt/framework/pull/8719\">#8719</a>)</li>\n<li>Add initial documentation for router composables (<a href=\"https://github.com/nuxt/framework/pull/8895\">#8895</a>)</li>\n<li>Add tls option to redis example (<a href=\"https://github.com/nuxt/framework/pull/8900\">#8900</a>)</li>\n<li>Fix syntax errors in server storage example (<a href=\"https://github.com/nuxt/framework/pull/8906\">#8906</a>)</li>\n<li>Fix typo (<a href=\"https://github.com/nuxt/framework/pull/8970\">#8970</a>)</li>\n<li>\n<strong>api:</strong> Add spaces to avoid breaking mobile layout (<a href=\"https://github.com/nuxt/framework/pull/8967\">#8967</a>)</li>\n<li>Typo in <code>available</code> (<a href=\"https://github.com/nuxt/framework/pull/8966\">#8966</a>)</li>\n<li>Add a bit more detail in the <code>definePageMeta</code> warning to specify it needs to be in a page (<a href=\"https://github.com/nuxt/framework/pull/8923\">#8923</a>)</li>\n<li>Match the open graph protocol markup (<a href=\"https://github.com/nuxt/framework/pull/8959\">#8959</a>)</li>\n<li>Fix typos (<a href=\"https://github.com/nuxt/framework/pull/8976\">#8976</a>)</li>\n</ul>\n<div class=\"markdown-heading\"><h3 class=\"heading-element\">❤️  Contributors</h3><a id=\"user-content-️--contributors\" class=\"anchor\" aria-label=\"Permalink: ❤️  Contributors\" href=\"#️--contributors\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<ul>\n<li>Anthony Fu <a href=\"mailto:anthonyfu117@hotmail.com\">anthonyfu117@hotmail.com</a>\n</li>\n<li>Daniel Roe <a href=\"mailto:daniel@roe.dev\">daniel@roe.dev</a>\n</li>\n<li>Pooya Parsa (<a href=\"http://github.com/pi0\">@pi0</a>)</li>\n<li>Harlan Wilton (<a href=\"http://github.com/harlan-zw\">@harlan-zw</a>)</li>\n<li>Mehdi HosseinZade (<a href=\"http://github.com/xtoolkit\">@xtoolkit</a>)</li>\n<li>Silvesterwali</li>\n<li>Israel Ortuño <a href=\"mailto:ai.ortuno@gmail.com\">ai.ortuno@gmail.com</a>\n</li>\n<li>Kevin Olson (<a href=\"http://github.com/acidjazz\">@acidjazz</a>)</li>\n<li>Julien Huang</li>\n<li>Okoro Redemption (<a href=\"http://github.com/therealokoro\">@therealokoro</a>)</li>\n<li>Clément Ollivier (<a href=\"http://github.com/clemcode\">@clemcode</a>)</li>\n<li>Cedric Wetzel (<a href=\"http://github.com/cedWetzel\">@cedWetzel</a>)</li>\n<li>Percy Ma (<a href=\"http://github.com/kecrily\">@kecrily</a>)</li>\n<li>Ali Soueidan</li>\n<li>Toby Faux</li>\n<li>Stefan <a href=\"mailto:stefan@standa.de\">stefan@standa.de</a>\n</li>\n<li>Krutie Patel <a href=\"mailto:krutie.patel@gmail.com\">krutie.patel@gmail.com</a>\n</li>\n<li>Horu</li>\n<li>Cue</li>\n<li>Alexander Lichter (<a href=\"http://github.com/manniL\">@manniL</a>)</li>\n<li>Sébastien Chopin (<a href=\"http://github.com/Atinux\">@Atinux</a>)</li>\n<li>Iljs Путлер Капут <a href=\"mailto:ilja@kotir.space\">ilja@kotir.space</a>\n</li>\n<li>Maxim Morev (<a href=\"http://github.com/MorevM\">@MorevM</a>)</li>\n<li>Agénor Debriat (<a href=\"http://github.com/agenordebriat\">@agenordebriat</a>)</li>\n<li>Cx33 (<a href=\"http://github.com/JiatLn\">@JiatLn</a>)</li>\n</ul>\n","assets":[]},{"id":83272939,"tag":"v3.0.0","author":"pi0","name":"Nuxt 3.0 stable","draft":false,"prerelease":false,"createdAt":"2022-11-16T14:56:11Z","publishedAt":"2022-11-16T15:05:18Z","markdown":"✨ [**Official Release Announcenment**](https://nuxt.com/v3)\r\n\r\n💬 [**Release Discussion**](https://github.com/nuxt/framework/discussions/9064)\r\n\r\n### 📝 Changelog\r\n\r\nCheck out [release candidate notes](https://github.com/nuxt/framework/releases) for older releases and migration steps if you using an older version of Nuxt 3.\r\n\r\n### 🩹 Fixes\r\n\r\n  - **nuxt:** Removed auto imports ([#9045](https://github.com/nuxt/framework/pull/9045))\r\n  - **schema:** Initialise `runtimeConfig.public` with empty object ([#9050](https://github.com/nuxt/framework/pull/9050))\r\n  - **cli:** Upgrade with `latest` tag ([#9060](https://github.com/nuxt/framework/pull/9060))\r\n  - **nuxt:** Allow union type arguments for `useAsyncData` ([#9061](https://github.com/nuxt/framework/pull/9061))\r\n\r\n### 📖 Documentation\r\n\r\n  - New website design ([#9007](https://github.com/nuxt/framework/pull/9007))\r\n  - Update website theme version ([819deb89](https://github.com/nuxt/framework/commit/819deb89))\r\n  - Minor style improvements ([9ab069b2](https://github.com/nuxt/framework/commit/9ab069b2))\r\n  - Update website-theme ([780b17b1](https://github.com/nuxt/framework/commit/780b17b1))\r\n  - Add warning about `definePageMeta` issues with transitions and `NuxtLoadingIndicator` ([#9055](https://github.com/nuxt/framework/pull/9055))\r\n  - Add missing agencies ([#9059](https://github.com/nuxt/framework/pull/9059))\r\n\r\n### 🏡 Chore\r\n\r\n  - Update readme design ([#9048](https://github.com/nuxt/framework/pull/9048))\r\n  - Ignore `parse5` for renovate update ([#9046](https://github.com/nuxt/framework/pull/9046))\r\n\r\n### ❤️  Contributors\r\n\r\n- Toby Faux \r\n- Clément Ollivier ([@clemcode](http://github.com/clemcode))\r\n- Pooya Parsa ([@pi0](http://github.com/pi0))\r\n- Conner ([@Intevel](http://github.com/Intevel))\r\n- Sébastien Chopin ([@Atinux](http://github.com/Atinux))\r\n- Daniel Roe <daniel@roe.dev>\r\n\r\n","html":"<p>✨ <a href=\"https://nuxt.com/v3\" rel=\"nofollow\"><strong>Official Release Announcenment</strong></a></p>\n<p>💬 <a href=\"https://github.com/nuxt/framework/discussions/9064\"><strong>Release Discussion</strong></a></p>\n<div class=\"markdown-heading\"><h3 class=\"heading-element\">📝 Changelog</h3><a id=\"user-content--changelog\" class=\"anchor\" aria-label=\"Permalink: 📝 Changelog\" href=\"#-changelog\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<p>Check out <a href=\"https://github.com/nuxt/framework/releases\">release candidate notes</a> for older releases and migration steps if you using an older version of Nuxt 3.</p>\n<div class=\"markdown-heading\"><h3 class=\"heading-element\">🩹 Fixes</h3><a id=\"user-content--fixes\" class=\"anchor\" aria-label=\"Permalink: 🩹 Fixes\" href=\"#-fixes\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<ul>\n<li>\n<strong>nuxt:</strong> Removed auto imports (<a href=\"https://github.com/nuxt/framework/pull/9045\">#9045</a>)</li>\n<li>\n<strong>schema:</strong> Initialise <code>runtimeConfig.public</code> with empty object (<a href=\"https://github.com/nuxt/framework/pull/9050\">#9050</a>)</li>\n<li>\n<strong>cli:</strong> Upgrade with <code>latest</code> tag (<a href=\"https://github.com/nuxt/framework/pull/9060\">#9060</a>)</li>\n<li>\n<strong>nuxt:</strong> Allow union type arguments for <code>useAsyncData</code> (<a href=\"https://github.com/nuxt/framework/pull/9061\">#9061</a>)</li>\n</ul>\n<div class=\"markdown-heading\"><h3 class=\"heading-element\">📖 Documentation</h3><a id=\"user-content--documentation\" class=\"anchor\" aria-label=\"Permalink: 📖 Documentation\" href=\"#-documentation\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<ul>\n<li>New website design (<a href=\"https://github.com/nuxt/framework/pull/9007\">#9007</a>)</li>\n<li>Update website theme version (<a href=\"https://github.com/nuxt/framework/commit/819deb89\">819deb89</a>)</li>\n<li>Minor style improvements (<a href=\"https://github.com/nuxt/framework/commit/9ab069b2\">9ab069b2</a>)</li>\n<li>Update website-theme (<a href=\"https://github.com/nuxt/framework/commit/780b17b1\">780b17b1</a>)</li>\n<li>Add warning about <code>definePageMeta</code> issues with transitions and <code>NuxtLoadingIndicator</code> (<a href=\"https://github.com/nuxt/framework/pull/9055\">#9055</a>)</li>\n<li>Add missing agencies (<a href=\"https://github.com/nuxt/framework/pull/9059\">#9059</a>)</li>\n</ul>\n<div class=\"markdown-heading\"><h3 class=\"heading-element\">🏡 Chore</h3><a id=\"user-content--chore\" class=\"anchor\" aria-label=\"Permalink: 🏡 Chore\" href=\"#-chore\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<ul>\n<li>Update readme design (<a href=\"https://github.com/nuxt/framework/pull/9048\">#9048</a>)</li>\n<li>Ignore <code>parse5</code> for renovate update (<a href=\"https://github.com/nuxt/framework/pull/9046\">#9046</a>)</li>\n</ul>\n<div class=\"markdown-heading\"><h3 class=\"heading-element\">❤️  Contributors</h3><a id=\"user-content-️--contributors\" class=\"anchor\" aria-label=\"Permalink: ❤️  Contributors\" href=\"#️--contributors\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<ul>\n<li>Toby Faux</li>\n<li>Clément Ollivier (<a href=\"http://github.com/clemcode\">@clemcode</a>)</li>\n<li>Pooya Parsa (<a href=\"http://github.com/pi0\">@pi0</a>)</li>\n<li>Conner (<a href=\"http://github.com/Intevel\">@Intevel</a>)</li>\n<li>Sébastien Chopin (<a href=\"http://github.com/Atinux\">@Atinux</a>)</li>\n<li>Daniel Roe <a href=\"mailto:daniel@roe.dev\">daniel@roe.dev</a>\n</li>\n</ul>\n","assets":[]},{"id":82066265,"tag":"v3.0.0-rc.13","author":"pi0","name":"v3.0.0-rc.13","draft":false,"prerelease":false,"createdAt":"2022-11-04T11:37:49Z","publishedAt":"2022-11-04T11:41:59Z","markdown":"👉  **[Release discussion](https://github.com/nuxt/framework/discussions/8687)**\r\n\r\n## ⭐ What is New?\r\n\r\n### 🔰 Security Fixes\r\n\r\nThis release contains multiple security related fixes [#8675](https://github.com/nuxt/framework/pull/8675), [#8674](https://github.com/nuxt/framework/pull/8674) and [#8673](https://github.com/nuxt/framework/pull/8673) reported via [huntr.dev](https://huntr.dev/) platform by [OhB00](https://github.com/OhB00).\r\n\r\nWe recommend you upgrade to the latest version as soon as possible.\r\n\r\nIf you encounter \"The request URL ... is outside of Vite service allow list\" issue, try adding path to `vite.server.fs.allow` in `nuxt.config`. [read more](https://github.com/nuxt/framework/pull/8674).\r\n\r\n### 🚀 Performance Improvements\r\n\r\nUsing a new method to extract `definePageMeta` improves vite performance and makes lazy compilation of pages possible ([#8536](https://github.com/nuxt/framework/pull/8536)).\r\n\r\n### 💯 Strict Config Schema and Types\r\n\r\nWe have cleaned up the configuration schema ([#8487](https://github.com/nuxt/framework/pull/8487)) so that you no longer would be confused with Nuxt 2 options and also can quickly notice any typos in `nuxt.config` file.\r\n\r\nTypescript strict mode is also enabled by default with this release as best practice. ([#8667](https://github.com/nuxt/framework/pull/8667))\r\n\r\n### 🚇 Nitro Development Server Proxy\r\n\r\nUsing `nitro.devProxy` option you can now configure proxies for the development server. ([learn more](https://nitro.unjs.io/config#devproxy))\r\n\r\n## Changelog\r\n\r\n[compare changes](https://github.com/nuxt/framework/compare/v3.0.0-rc.12...release/3.0.0-rc.13)\r\n\r\n#### ⚠️  Breaking Changes\r\n\r\n  - **nuxt:** ⚠️  Use parser to generate page metadata ([#8536](https://github.com/nuxt/framework/pull/8536))\r\n  - **schema:** ⚠️  Use strict typescript mode by default ([#8667](https://github.com/nuxt/framework/pull/8667))\r\n  - **test-utils:** ⚠️  Update vitest args ([#8325](https://github.com/nuxt/framework/pull/8325))\r\n  - **schema:** ⚠️  Disable `app.pageTransition` and `app.layoutTransition` by default ([#8436](https://github.com/nuxt/framework/pull/8436))\r\n  - **nuxt:** ⚠️  Cleanup schema and split nuxt 2 types ([#8487](https://github.com/nuxt/framework/pull/8487))\r\n\r\n### 🚀 Enhancements\r\n\r\n  - **nuxt:** Default router scroll behavior ([#3851](https://github.com/nuxt/framework/pull/3851))\r\n  - **nuxt:** Make `useFetch` options reactive ([#8374](https://github.com/nuxt/framework/pull/8374))\r\n  - **kit:** Add `updateTemplates` utility ([#8413](https://github.com/nuxt/framework/pull/8413))\r\n  - **nuxt:** Add dev warnings when `setPageLayout` is used incorrectly ([#8464](https://github.com/nuxt/framework/pull/8464))\r\n  - Add `<devOnly>` component ([#7950](https://github.com/nuxt/framework/pull/7950))\r\n  - **nuxt:** Allow setting `name` and `path` for a route in `definePageMeta` ([#8633](https://github.com/nuxt/framework/pull/8633))\r\n  - **kit:** Add `addServerPlugin` utility ([#8635](https://github.com/nuxt/framework/pull/8635))\r\n  - **kit, nuxt:** Support `prerender:routes` and `addPrerenderRoutes` ([#8670](https://github.com/nuxt/framework/pull/8670))\r\n\r\n### 🩹 Fixes\r\n\r\n  - **nuxt:** Don't use or assignment ([#8299](https://github.com/nuxt/framework/pull/8299))\r\n  - **nuxt:** Pass original request headers to the error page ([#7340](https://github.com/nuxt/framework/pull/7340))\r\n  - **nuxt:** Scroll to top on dynamic routes with different params ([#8327](https://github.com/nuxt/framework/pull/8327))\r\n  - **nuxt:** Router defaults overwrite custom options always ([#8334](https://github.com/nuxt/framework/pull/8334))\r\n  - **cli:** Update analzye main handler ([#8339](https://github.com/nuxt/framework/pull/8339))\r\n  - **nuxt:** RouterBehavior comparison for hash block ([#8383](https://github.com/nuxt/framework/pull/8383))\r\n  - **nuxt:** Don't load payloads for external urls ([#8370](https://github.com/nuxt/framework/pull/8370))\r\n  - **vite:** Invalidate virtual modules with `vite-node` ([#8389](https://github.com/nuxt/framework/pull/8389))\r\n  - **nuxt:** Avoid directly importing `vue-router` inside `<NuxtLayout>` ([#8421](https://github.com/nuxt/framework/pull/8421))\r\n  - **webpack:** Print build errors ([#8388](https://github.com/nuxt/framework/pull/8388))\r\n  - **kit:** Use `pathe` to resolve aliases ([#8453](https://github.com/nuxt/framework/pull/8453))\r\n  - **test-utils:** Override `NITRO_PORT` as well ([#8458](https://github.com/nuxt/framework/pull/8458))\r\n  - **nuxt:** Call data refresh hook in parallel ([#8470](https://github.com/nuxt/framework/pull/8470))\r\n  - **nuxt:** Allow responding with custom headers from `error.vue` ([#8469](https://github.com/nuxt/framework/pull/8469))\r\n  - **schema:** Disable early hints by default ([#8486](https://github.com/nuxt/framework/pull/8486))\r\n  - **kit:** Don't require nuxt context when resolving path ([#8504](https://github.com/nuxt/framework/pull/8504))\r\n  - **nuxt, nuxi:** Improve `pages` creation and removal DX ([#8502](https://github.com/nuxt/framework/pull/8502))\r\n  - **nuxt:** Add `vue-router` to optimized deps ([#8544](https://github.com/nuxt/framework/pull/8544))\r\n  - **vite:** Handle all vite middleware routes ([#8601](https://github.com/nuxt/framework/pull/8601))\r\n  - **nuxt:** Pass async-data errors through to client ([#8521](https://github.com/nuxt/framework/pull/8521))\r\n  - **nuxt:** Check before appending comma in composable keys ([#8529](https://github.com/nuxt/framework/pull/8529))\r\n  - **nuxt:** ⚠️  Use parser to generate page metadata ([#8536](https://github.com/nuxt/framework/pull/8536))\r\n  - **kit:** Normalize handler paths ([#8626](https://github.com/nuxt/framework/pull/8626))\r\n  - **nuxt:** Don't force prerender `/` if user doesn't have that route ([#8639](https://github.com/nuxt/framework/pull/8639))\r\n  - **nuxt:** Do not inline global styles in html response ([#8666](https://github.com/nuxt/framework/pull/8666))\r\n  - **schema:** ⚠️  Use strict typescript mode by default ([#8667](https://github.com/nuxt/framework/pull/8667))\r\n  - **nuxt:** Disallow directly rendering error page ([#8673](https://github.com/nuxt/framework/pull/8673))\r\n  - Resolve ids to support pnpm ([#8671](https://github.com/nuxt/framework/pull/8671))\r\n  - **vite:** Enable fs strict mode ([#8674](https://github.com/nuxt/framework/pull/8674))\r\n  - **nuxt:** Ensure payload url has no protocol ([#8675](https://github.com/nuxt/framework/pull/8675))\r\n\r\n### 💅 Refactors\r\n\r\n  - **test-utils:** ⚠️  Update vitest args ([#8325](https://github.com/nuxt/framework/pull/8325))\r\n  - **schema:** ⚠️  Disable `app.pageTransition` and `app.layoutTransition` by default ([#8436](https://github.com/nuxt/framework/pull/8436))\r\n  - **nuxt:** ⚠️  Cleanup schema and split Nuxt 2 types ([#8487](https://github.com/nuxt/framework/pull/8487))\r\n\r\n### 📖 Documentation\r\n\r\n  - Add route rules to concepts > rendering ([#8292](https://github.com/nuxt/framework/pull/8292))\r\n  - Fix broken link ([#8319](https://github.com/nuxt/framework/pull/8319))\r\n  - Fix link to documentation guide ([#8322](https://github.com/nuxt/framework/pull/8322))\r\n  - Update website-theme to 0.1.7 ([dbc2c8ce](https://github.com/nuxt/framework/commit/dbc2c8ce))\r\n  - Add missing opening `<NuxtLayout>` tag in a code sample ([#8349](https://github.com/nuxt/framework/pull/8349))\r\n  - Update links for external tools ([#8382](https://github.com/nuxt/framework/pull/8382))\r\n  - Update for clarity and fix typos ([#8375](https://github.com/nuxt/framework/pull/8375))\r\n  - Add missing `app` key for transitions ([#8385](https://github.com/nuxt/framework/pull/8385))\r\n  - **api:** Add `<ClientOnly>` to API docs ([#8400](https://github.com/nuxt/framework/pull/8400))\r\n  - Fix typo ([#8427](https://github.com/nuxt/framework/pull/8427))\r\n  - Disable transitions by default as hotfix ([#8434](https://github.com/nuxt/framework/pull/8434))\r\n  - Add note about runtime config serialization ([#8432](https://github.com/nuxt/framework/pull/8432))\r\n  - Change required node version to be above 16.11 ([#8408](https://github.com/nuxt/framework/pull/8408))\r\n  - Use `LinkExample` as block component ([#8459](https://github.com/nuxt/framework/pull/8459))\r\n  - Add note about early hints and nginx ([#8485](https://github.com/nuxt/framework/pull/8485))\r\n  - Updated bridge migration guide ([#8471](https://github.com/nuxt/framework/pull/8471))\r\n  - Mention use case for `<KeepAlive>` in `definePageMeta` ([#8491](https://github.com/nuxt/framework/pull/8491))\r\n  - Update stability edge banners ([#8498](https://github.com/nuxt/framework/pull/8498))\r\n  - Generate docs for unversioned schema ([#8535](https://github.com/nuxt/framework/pull/8535))\r\n  - Fix transition wording to include layouts ([#8600](https://github.com/nuxt/framework/pull/8600))\r\n  - Add information about type checking to `typescript.typeCheck` config. ([#8632](https://github.com/nuxt/framework/pull/8632))\r\n\r\n### 📦 Build\r\n\r\n  - **pkg:** Support Node.js 19 ([#8324](https://github.com/nuxt/framework/pull/8324))\r\n\r\n### 🏡 Chore\r\n\r\n  - **renovate:** Ignore monorepo dependency upgrades ([f934343b](https://github.com/nuxt/framework/commit/f934343b))\r\n  - Upgrade vitest to 0.24 ([#6764](https://github.com/nuxt/framework/pull/6764))\r\n  - **nuxt:** Add type for headers ([#8326](https://github.com/nuxt/framework/pull/8326))\r\n  - **examples:** Add missing dependency and script for testing example ([#8457](https://github.com/nuxt/framework/pull/8457))\r\n  - Reenable auto-upgrades for vueuse/head ([#8506](https://github.com/nuxt/framework/pull/8506))\r\n  - Update nitropack to 0.6.1 ([5a43e68e](https://github.com/nuxt/framework/commit/5a43e68e))\r\n\r\n### ✅ Tests\r\n\r\n  - Add bundle size test ([#8133](https://github.com/nuxt/framework/pull/8133))\r\n  - Update type test for strict mode ([#8669](https://github.com/nuxt/framework/pull/8669))\r\n\r\n### ❤️  Contributors\r\n\r\n- Adewale Adeyemi\r\n- Anthony Fu\r\n- Christian Burkhart\r\n- Clément Ollivier\r\n- Damian Głowala\r\n- Daniel Roe\r\n- David Stack\r\n- Dawid Stefanko\r\n- Dmitriy\r\n- Farnabaz\r\n- Joel\r\n- Joel Wenzel\r\n- Johann Schopplich\r\n- Johnson Chu\r\n- Josh Deltener\r\n- Julien Huang\r\n- Nils\r\n- Ondřej Misák\r\n- Pascal Sthamer\r\n- Pooya Parsa\r\n- Rajendra\r\n- Sacha STAFYNIAK\r\n- Sébastien Chopin\r\n- Zecka\r\n\r\n","html":"<p>👉  <strong><a href=\"https://github.com/nuxt/framework/discussions/8687\">Release discussion</a></strong></p>\n<div class=\"markdown-heading\"><h2 class=\"heading-element\">⭐ What is New?</h2><a id=\"user-content--what-is-new\" class=\"anchor\" aria-label=\"Permalink: ⭐ What is New?\" href=\"#-what-is-new\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<div class=\"markdown-heading\"><h3 class=\"heading-element\">🔰 Security Fixes</h3><a id=\"user-content--security-fixes\" class=\"anchor\" aria-label=\"Permalink: 🔰 Security Fixes\" href=\"#-security-fixes\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<p>This release contains multiple security related fixes <a href=\"https://github.com/nuxt/framework/pull/8675\">#8675</a>, <a href=\"https://github.com/nuxt/framework/pull/8674\">#8674</a> and <a href=\"https://github.com/nuxt/framework/pull/8673\">#8673</a> reported via <a href=\"https://huntr.dev/\" rel=\"nofollow\">huntr.dev</a> platform by <a href=\"https://github.com/OhB00\">OhB00</a>.</p>\n<p>We recommend you upgrade to the latest version as soon as possible.</p>\n<p>If you encounter \"The request URL ... is outside of Vite service allow list\" issue, try adding path to <code>vite.server.fs.allow</code> in <code>nuxt.config</code>. <a href=\"https://github.com/nuxt/framework/pull/8674\">read more</a>.</p>\n<div class=\"markdown-heading\"><h3 class=\"heading-element\">🚀 Performance Improvements</h3><a id=\"user-content--performance-improvements\" class=\"anchor\" aria-label=\"Permalink: 🚀 Performance Improvements\" href=\"#-performance-improvements\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<p>Using a new method to extract <code>definePageMeta</code> improves vite performance and makes lazy compilation of pages possible (<a href=\"https://github.com/nuxt/framework/pull/8536\">#8536</a>).</p>\n<div class=\"markdown-heading\"><h3 class=\"heading-element\">💯 Strict Config Schema and Types</h3><a id=\"user-content--strict-config-schema-and-types\" class=\"anchor\" aria-label=\"Permalink: 💯 Strict Config Schema and Types\" href=\"#-strict-config-schema-and-types\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<p>We have cleaned up the configuration schema (<a href=\"https://github.com/nuxt/framework/pull/8487\">#8487</a>) so that you no longer would be confused with Nuxt 2 options and also can quickly notice any typos in <code>nuxt.config</code> file.</p>\n<p>Typescript strict mode is also enabled by default with this release as best practice. (<a href=\"https://github.com/nuxt/framework/pull/8667\">#8667</a>)</p>\n<div class=\"markdown-heading\"><h3 class=\"heading-element\">🚇 Nitro Development Server Proxy</h3><a id=\"user-content--nitro-development-server-proxy\" class=\"anchor\" aria-label=\"Permalink: 🚇 Nitro Development Server Proxy\" href=\"#-nitro-development-server-proxy\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<p>Using <code>nitro.devProxy</code> option you can now configure proxies for the development server. (<a href=\"https://nitro.unjs.io/config#devproxy\" rel=\"nofollow\">learn more</a>)</p>\n<div class=\"markdown-heading\"><h2 class=\"heading-element\">Changelog</h2><a id=\"user-content-changelog\" class=\"anchor\" aria-label=\"Permalink: Changelog\" href=\"#changelog\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<p><a href=\"https://github.com/nuxt/framework/compare/v3.0.0-rc.12...release/3.0.0-rc.13\">compare changes</a></p>\n<div class=\"markdown-heading\"><h4 class=\"heading-element\"><g-emoji class=\"g-emoji\" alias=\"warning\">⚠️</g-emoji>  Breaking Changes</h4><a id=\"user-content-️--breaking-changes\" class=\"anchor\" aria-label=\"Permalink: ⚠️  Breaking Changes\" href=\"#️--breaking-changes\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<ul>\n<li>\n<strong>nuxt:</strong> <g-emoji class=\"g-emoji\" alias=\"warning\">⚠️</g-emoji>  Use parser to generate page metadata (<a href=\"https://github.com/nuxt/framework/pull/8536\">#8536</a>)</li>\n<li>\n<strong>schema:</strong> <g-emoji class=\"g-emoji\" alias=\"warning\">⚠️</g-emoji>  Use strict typescript mode by default (<a href=\"https://github.com/nuxt/framework/pull/8667\">#8667</a>)</li>\n<li>\n<strong>test-utils:</strong> <g-emoji class=\"g-emoji\" alias=\"warning\">⚠️</g-emoji>  Update vitest args (<a href=\"https://github.com/nuxt/framework/pull/8325\">#8325</a>)</li>\n<li>\n<strong>schema:</strong> <g-emoji class=\"g-emoji\" alias=\"warning\">⚠️</g-emoji>  Disable <code>app.pageTransition</code> and <code>app.layoutTransition</code> by default (<a href=\"https://github.com/nuxt/framework/pull/8436\">#8436</a>)</li>\n<li>\n<strong>nuxt:</strong> <g-emoji class=\"g-emoji\" alias=\"warning\">⚠️</g-emoji>  Cleanup schema and split nuxt 2 types (<a href=\"https://github.com/nuxt/framework/pull/8487\">#8487</a>)</li>\n</ul>\n<div class=\"markdown-heading\"><h3 class=\"heading-element\">🚀 Enhancements</h3><a id=\"user-content--enhancements\" class=\"anchor\" aria-label=\"Permalink: 🚀 Enhancements\" href=\"#-enhancements\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<ul>\n<li>\n<strong>nuxt:</strong> Default router scroll behavior (<a href=\"https://github.com/nuxt/framework/pull/3851\">#3851</a>)</li>\n<li>\n<strong>nuxt:</strong> Make <code>useFetch</code> options reactive (<a href=\"https://github.com/nuxt/framework/pull/8374\">#8374</a>)</li>\n<li>\n<strong>kit:</strong> Add <code>updateTemplates</code> utility (<a href=\"https://github.com/nuxt/framework/pull/8413\">#8413</a>)</li>\n<li>\n<strong>nuxt:</strong> Add dev warnings when <code>setPageLayout</code> is used incorrectly (<a href=\"https://github.com/nuxt/framework/pull/8464\">#8464</a>)</li>\n<li>Add <code>&lt;devOnly&gt;</code> component (<a href=\"https://github.com/nuxt/framework/pull/7950\">#7950</a>)</li>\n<li>\n<strong>nuxt:</strong> Allow setting <code>name</code> and <code>path</code> for a route in <code>definePageMeta</code> (<a href=\"https://github.com/nuxt/framework/pull/8633\">#8633</a>)</li>\n<li>\n<strong>kit:</strong> Add <code>addServerPlugin</code> utility (<a href=\"https://github.com/nuxt/framework/pull/8635\">#8635</a>)</li>\n<li>\n<strong>kit, nuxt:</strong> Support <code>prerender:routes</code> and <code>addPrerenderRoutes</code> (<a href=\"https://github.com/nuxt/framework/pull/8670\">#8670</a>)</li>\n</ul>\n<div class=\"markdown-heading\"><h3 class=\"heading-element\">🩹 Fixes</h3><a id=\"user-content--fixes\" class=\"anchor\" aria-label=\"Permalink: 🩹 Fixes\" href=\"#-fixes\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<ul>\n<li>\n<strong>nuxt:</strong> Don't use or assignment (<a href=\"https://github.com/nuxt/framework/pull/8299\">#8299</a>)</li>\n<li>\n<strong>nuxt:</strong> Pass original request headers to the error page (<a href=\"https://github.com/nuxt/framework/pull/7340\">#7340</a>)</li>\n<li>\n<strong>nuxt:</strong> Scroll to top on dynamic routes with different params (<a href=\"https://github.com/nuxt/framework/pull/8327\">#8327</a>)</li>\n<li>\n<strong>nuxt:</strong> Router defaults overwrite custom options always (<a href=\"https://github.com/nuxt/framework/pull/8334\">#8334</a>)</li>\n<li>\n<strong>cli:</strong> Update analzye main handler (<a href=\"https://github.com/nuxt/framework/pull/8339\">#8339</a>)</li>\n<li>\n<strong>nuxt:</strong> RouterBehavior comparison for hash block (<a href=\"https://github.com/nuxt/framework/pull/8383\">#8383</a>)</li>\n<li>\n<strong>nuxt:</strong> Don't load payloads for external urls (<a href=\"https://github.com/nuxt/framework/pull/8370\">#8370</a>)</li>\n<li>\n<strong>vite:</strong> Invalidate virtual modules with <code>vite-node</code> (<a href=\"https://github.com/nuxt/framework/pull/8389\">#8389</a>)</li>\n<li>\n<strong>nuxt:</strong> Avoid directly importing <code>vue-router</code> inside <code>&lt;NuxtLayout&gt;</code> (<a href=\"https://github.com/nuxt/framework/pull/8421\">#8421</a>)</li>\n<li>\n<strong>webpack:</strong> Print build errors (<a href=\"https://github.com/nuxt/framework/pull/8388\">#8388</a>)</li>\n<li>\n<strong>kit:</strong> Use <code>pathe</code> to resolve aliases (<a href=\"https://github.com/nuxt/framework/pull/8453\">#8453</a>)</li>\n<li>\n<strong>test-utils:</strong> Override <code>NITRO_PORT</code> as well (<a href=\"https://github.com/nuxt/framework/pull/8458\">#8458</a>)</li>\n<li>\n<strong>nuxt:</strong> Call data refresh hook in parallel (<a href=\"https://github.com/nuxt/framework/pull/8470\">#8470</a>)</li>\n<li>\n<strong>nuxt:</strong> Allow responding with custom headers from <code>error.vue</code> (<a href=\"https://github.com/nuxt/framework/pull/8469\">#8469</a>)</li>\n<li>\n<strong>schema:</strong> Disable early hints by default (<a href=\"https://github.com/nuxt/framework/pull/8486\">#8486</a>)</li>\n<li>\n<strong>kit:</strong> Don't require nuxt context when resolving path (<a href=\"https://github.com/nuxt/framework/pull/8504\">#8504</a>)</li>\n<li>\n<strong>nuxt, nuxi:</strong> Improve <code>pages</code> creation and removal DX (<a href=\"https://github.com/nuxt/framework/pull/8502\">#8502</a>)</li>\n<li>\n<strong>nuxt:</strong> Add <code>vue-router</code> to optimized deps (<a href=\"https://github.com/nuxt/framework/pull/8544\">#8544</a>)</li>\n<li>\n<strong>vite:</strong> Handle all vite middleware routes (<a href=\"https://github.com/nuxt/framework/pull/8601\">#8601</a>)</li>\n<li>\n<strong>nuxt:</strong> Pass async-data errors through to client (<a href=\"https://github.com/nuxt/framework/pull/8521\">#8521</a>)</li>\n<li>\n<strong>nuxt:</strong> Check before appending comma in composable keys (<a href=\"https://github.com/nuxt/framework/pull/8529\">#8529</a>)</li>\n<li>\n<strong>nuxt:</strong> <g-emoji class=\"g-emoji\" alias=\"warning\">⚠️</g-emoji>  Use parser to generate page metadata (<a href=\"https://github.com/nuxt/framework/pull/8536\">#8536</a>)</li>\n<li>\n<strong>kit:</strong> Normalize handler paths (<a href=\"https://github.com/nuxt/framework/pull/8626\">#8626</a>)</li>\n<li>\n<strong>nuxt:</strong> Don't force prerender <code>/</code> if user doesn't have that route (<a href=\"https://github.com/nuxt/framework/pull/8639\">#8639</a>)</li>\n<li>\n<strong>nuxt:</strong> Do not inline global styles in html response (<a href=\"https://github.com/nuxt/framework/pull/8666\">#8666</a>)</li>\n<li>\n<strong>schema:</strong> <g-emoji class=\"g-emoji\" alias=\"warning\">⚠️</g-emoji>  Use strict typescript mode by default (<a href=\"https://github.com/nuxt/framework/pull/8667\">#8667</a>)</li>\n<li>\n<strong>nuxt:</strong> Disallow directly rendering error page (<a href=\"https://github.com/nuxt/framework/pull/8673\">#8673</a>)</li>\n<li>Resolve ids to support pnpm (<a href=\"https://github.com/nuxt/framework/pull/8671\">#8671</a>)</li>\n<li>\n<strong>vite:</strong> Enable fs strict mode (<a href=\"https://github.com/nuxt/framework/pull/8674\">#8674</a>)</li>\n<li>\n<strong>nuxt:</strong> Ensure payload url has no protocol (<a href=\"https://github.com/nuxt/framework/pull/8675\">#8675</a>)</li>\n</ul>\n<div class=\"markdown-heading\"><h3 class=\"heading-element\">💅 Refactors</h3><a id=\"user-content--refactors\" class=\"anchor\" aria-label=\"Permalink: 💅 Refactors\" href=\"#-refactors\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<ul>\n<li>\n<strong>test-utils:</strong> <g-emoji class=\"g-emoji\" alias=\"warning\">⚠️</g-emoji>  Update vitest args (<a href=\"https://github.com/nuxt/framework/pull/8325\">#8325</a>)</li>\n<li>\n<strong>schema:</strong> <g-emoji class=\"g-emoji\" alias=\"warning\">⚠️</g-emoji>  Disable <code>app.pageTransition</code> and <code>app.layoutTransition</code> by default (<a href=\"https://github.com/nuxt/framework/pull/8436\">#8436</a>)</li>\n<li>\n<strong>nuxt:</strong> <g-emoji class=\"g-emoji\" alias=\"warning\">⚠️</g-emoji>  Cleanup schema and split Nuxt 2 types (<a href=\"https://github.com/nuxt/framework/pull/8487\">#8487</a>)</li>\n</ul>\n<div class=\"markdown-heading\"><h3 class=\"heading-element\">📖 Documentation</h3><a id=\"user-content--documentation\" class=\"anchor\" aria-label=\"Permalink: 📖 Documentation\" href=\"#-documentation\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<ul>\n<li>Add route rules to concepts &gt; rendering (<a href=\"https://github.com/nuxt/framework/pull/8292\">#8292</a>)</li>\n<li>Fix broken link (<a href=\"https://github.com/nuxt/framework/pull/8319\">#8319</a>)</li>\n<li>Fix link to documentation guide (<a href=\"https://github.com/nuxt/framework/pull/8322\">#8322</a>)</li>\n<li>Update website-theme to 0.1.7 (<a href=\"https://github.com/nuxt/framework/commit/dbc2c8ce\">dbc2c8ce</a>)</li>\n<li>Add missing opening <code>&lt;NuxtLayout&gt;</code> tag in a code sample (<a href=\"https://github.com/nuxt/framework/pull/8349\">#8349</a>)</li>\n<li>Update links for external tools (<a href=\"https://github.com/nuxt/framework/pull/8382\">#8382</a>)</li>\n<li>Update for clarity and fix typos (<a href=\"https://github.com/nuxt/framework/pull/8375\">#8375</a>)</li>\n<li>Add missing <code>app</code> key for transitions (<a href=\"https://github.com/nuxt/framework/pull/8385\">#8385</a>)</li>\n<li>\n<strong>api:</strong> Add <code>&lt;ClientOnly&gt;</code> to API docs (<a href=\"https://github.com/nuxt/framework/pull/8400\">#8400</a>)</li>\n<li>Fix typo (<a href=\"https://github.com/nuxt/framework/pull/8427\">#8427</a>)</li>\n<li>Disable transitions by default as hotfix (<a href=\"https://github.com/nuxt/framework/pull/8434\">#8434</a>)</li>\n<li>Add note about runtime config serialization (<a href=\"https://github.com/nuxt/framework/pull/8432\">#8432</a>)</li>\n<li>Change required node version to be above 16.11 (<a href=\"https://github.com/nuxt/framework/pull/8408\">#8408</a>)</li>\n<li>Use <code>LinkExample</code> as block component (<a href=\"https://github.com/nuxt/framework/pull/8459\">#8459</a>)</li>\n<li>Add note about early hints and nginx (<a href=\"https://github.com/nuxt/framework/pull/8485\">#8485</a>)</li>\n<li>Updated bridge migration guide (<a href=\"https://github.com/nuxt/framework/pull/8471\">#8471</a>)</li>\n<li>Mention use case for <code>&lt;KeepAlive&gt;</code> in <code>definePageMeta</code> (<a href=\"https://github.com/nuxt/framework/pull/8491\">#8491</a>)</li>\n<li>Update stability edge banners (<a href=\"https://github.com/nuxt/framework/pull/8498\">#8498</a>)</li>\n<li>Generate docs for unversioned schema (<a href=\"https://github.com/nuxt/framework/pull/8535\">#8535</a>)</li>\n<li>Fix transition wording to include layouts (<a href=\"https://github.com/nuxt/framework/pull/8600\">#8600</a>)</li>\n<li>Add information about type checking to <code>typescript.typeCheck</code> config. (<a href=\"https://github.com/nuxt/framework/pull/8632\">#8632</a>)</li>\n</ul>\n<div class=\"markdown-heading\"><h3 class=\"heading-element\">📦 Build</h3><a id=\"user-content--build\" class=\"anchor\" aria-label=\"Permalink: 📦 Build\" href=\"#-build\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<ul>\n<li>\n<strong>pkg:</strong> Support Node.js 19 (<a href=\"https://github.com/nuxt/framework/pull/8324\">#8324</a>)</li>\n</ul>\n<div class=\"markdown-heading\"><h3 class=\"heading-element\">🏡 Chore</h3><a id=\"user-content--chore\" class=\"anchor\" aria-label=\"Permalink: 🏡 Chore\" href=\"#-chore\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<ul>\n<li>\n<strong>renovate:</strong> Ignore monorepo dependency upgrades (<a href=\"https://github.com/nuxt/framework/commit/f934343b\">f934343b</a>)</li>\n<li>Upgrade vitest to 0.24 (<a href=\"https://github.com/nuxt/framework/pull/6764\">#6764</a>)</li>\n<li>\n<strong>nuxt:</strong> Add type for headers (<a href=\"https://github.com/nuxt/framework/pull/8326\">#8326</a>)</li>\n<li>\n<strong>examples:</strong> Add missing dependency and script for testing example (<a href=\"https://github.com/nuxt/framework/pull/8457\">#8457</a>)</li>\n<li>Reenable auto-upgrades for vueuse/head (<a href=\"https://github.com/nuxt/framework/pull/8506\">#8506</a>)</li>\n<li>Update nitropack to 0.6.1 (<a href=\"https://github.com/nuxt/framework/commit/5a43e68e\">5a43e68e</a>)</li>\n</ul>\n<div class=\"markdown-heading\"><h3 class=\"heading-element\">✅ Tests</h3><a id=\"user-content--tests\" class=\"anchor\" aria-label=\"Permalink: ✅ Tests\" href=\"#-tests\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<ul>\n<li>Add bundle size test (<a href=\"https://github.com/nuxt/framework/pull/8133\">#8133</a>)</li>\n<li>Update type test for strict mode (<a href=\"https://github.com/nuxt/framework/pull/8669\">#8669</a>)</li>\n</ul>\n<div class=\"markdown-heading\"><h3 class=\"heading-element\">❤️  Contributors</h3><a id=\"user-content-️--contributors\" class=\"anchor\" aria-label=\"Permalink: ❤️  Contributors\" href=\"#️--contributors\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<ul>\n<li>Adewale Adeyemi</li>\n<li>Anthony Fu</li>\n<li>Christian Burkhart</li>\n<li>Clément Ollivier</li>\n<li>Damian Głowala</li>\n<li>Daniel Roe</li>\n<li>David Stack</li>\n<li>Dawid Stefanko</li>\n<li>Dmitriy</li>\n<li>Farnabaz</li>\n<li>Joel</li>\n<li>Joel Wenzel</li>\n<li>Johann Schopplich</li>\n<li>Johnson Chu</li>\n<li>Josh Deltener</li>\n<li>Julien Huang</li>\n<li>Nils</li>\n<li>Ondřej Misák</li>\n<li>Pascal Sthamer</li>\n<li>Pooya Parsa</li>\n<li>Rajendra</li>\n<li>Sacha STAFYNIAK</li>\n<li>Sébastien Chopin</li>\n<li>Zecka</li>\n</ul>\n","assets":[]},{"id":80244314,"tag":"v3.0.0-rc.12","author":"pi0","name":"v3.0.0-rc.12","draft":false,"prerelease":false,"createdAt":"2022-10-18T18:47:21Z","publishedAt":"2022-10-18T18:54:17Z","markdown":"> [**💬  Release Discussion**](https://github.com/nuxt/framework/discussions/8296)\r\n\r\n## 🚀 How to Upgrade\r\n\r\n> **Note**\r\n> Make sure to recreate the lock file in the project in case of any issues after the upgrade.\r\n\r\n- **Automated:** `npx nuxi@latest upgrade --force`\r\n- **Manual:** Bump `nuxt` dependency to `3.0.0-rc.12` and then use `npx nuxi@latest cleanup` to cleanup any local caches\r\n\r\n## ⭐ What is New?\r\n\r\n### 📍 Route Rules\r\n\r\nRC.12 comes with the first public beta for route rules and hybrid rendering support. Using route rules you can define rules for a group of nuxt routes, change rendering mode or assign a cache strategy based on route! Nuxt server will automatically register corresponding middleware and wrap routes with cache handlers using Nitro caching layer. Whenever possible, route rules will be automatically applied to the deployment platform's native rules (currently Netlify and Vercel are supported).\r\n\r\n👉 See docs for [examples and more info](https://v3.nuxtjs.org/guide/concepts/rendering/#route-rules).\r\n\r\n### ⚗️ Nitropack 0.6\r\n\r\nNitropack upgraded to 0.6 ([Release Notes](https://github.com/unjs/nitro/releases/tag/v0.6.0)) and  h3 upgraded to 0.8 ([Release Notes](https://github.com/unjs/h3/releases/tag/v0.8.0))\r\n\r\n**⚠️ Breaking changes:** Using `defineEventHandler()` or `eventHandler()` is now required. If you were previously using a Node.js middleware with `(req, res, next?)` syntax you need to wrap them with `fromNodeMiddleware()` to convert it into an h3 handler. \r\n\r\n### 👦 `useHead` updates\r\n\r\nThis release brings a brand-new version of `@vueuse/head` with some significant performance improvements and bug fixes. Check out https://github.com/nuxt/framework/pull/8000 for more details, but in particular:\r\n\r\n* Fully-typed usage of `useHead`\r\n* No more flickering when transitioning between routes\r\n* Support _ordering_ of head metadata\r\n* Faster head hydration and deduping\r\n\r\n**⚠️ Breaking changes:** The shortcuts `viewport` and `charset` can only be used within `nuxt.config` and not within `useHead` directly. For more information on how to update, see https://github.com/nuxt/framework/pull/8000.\r\n\r\n### ⚡ Page Meta\r\n\r\nNew router options `validate` and `redirect` are now supported directly in `definePageMeta` - so you can perform additional validation for dynamic routes, or implement route redirects directly within pages.\r\n\r\n```ts\r\ndefinePageMeta({\r\n  // redirect: '/admin',\r\n  validate: async (route) => {\r\n    const nuxtApp = useNuxtApp()\r\n    // Check if the id is made up of digits\r\n    return /^\\d+$/.test(params.id)\r\n  }\r\n})\r\n```\r\n\r\n### 🌅 Early Hints\r\n\r\nNuxt's node server renderer will now respond with 103 Early Hints before the server renders the app, meaning that you should see a decreased TTFB and earlier resource loading in a [supported environment](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/103#browser_compatibility) - which at the moment is Chrome with your Nuxt app served over HTTPS with newer than HTTP/1.1.\r\n\r\n### 📖 Nuxt 3 Docs\r\n\r\nNuxt's documentation is now written with Nuxt 3's new theming system and the latest Docus and Content module versions. Check it out at https://v3.nuxtjs.org! Expect more coming soon!\r\n\r\n<p align=\"center\">\r\n<img width=\"70%\" src=\"https://user-images.githubusercontent.com/28706372/195312835-ac731792-9625-4dac-a0c1-8cc3e3a63619.png\" alt=\"nuxt 3 docs\">\r\n</p> \r\n\r\n## Changelog\r\n\r\n[compare changes](https://github.com/nuxt/framework/compare/v3.0.0-rc.11...release/3.0.0.rc.12)\r\n\r\n\r\n### 🚀 Enhancements\r\n\r\n  - **nuxt:** Support `redirect` within page metadata ([#7746](https://github.com/nuxt/framework/pull/7746))\r\n  - **cli:** Support `--dotenv` for `dev`, `build` and `preview` commands ([#7660](https://github.com/nuxt/framework/pull/7660))\r\n  - **nuxt:** Allow configuring plugins directory ([#7981](https://github.com/nuxt/framework/pull/7981))\r\n  - **nuxt:** Add default slot to `<NuxtLoadingIndicator>` ([#7128](https://github.com/nuxt/framework/pull/7128))\r\n  - **pages:** Add `validate` hook for `definePageMeta` ([#7870](https://github.com/nuxt/framework/pull/7870))\r\n  - **nuxt:** Refresh override for data fetching composables ([#7864](https://github.com/nuxt/framework/pull/7864))\r\n  - **schema, nuxt:** Allow user-configurable `serverDir` ([#7868](https://github.com/nuxt/framework/pull/7868))\r\n  - **nuxt:** Parse html to treeshake client-only components ([#7527](https://github.com/nuxt/framework/pull/7527))\r\n  - **nuxt:** Wrap `#components` client exports with createClientOnly ([#7412](https://github.com/nuxt/framework/pull/7412))\r\n  - **nuxt:** Add `ssr: false` route rule to enable SPA mode ([#7938](https://github.com/nuxt/framework/pull/7938))\r\n  - **nuxt:** Migrate to latest `@vueuse/head` ([#8000](https://github.com/nuxt/framework/pull/8000))\r\n  - **nuxt:** ⚠️  Add `<NuxtPage>` to `#components` ([#8145](https://github.com/nuxt/framework/pull/8145))\r\n  - **nuxt:** Add hook debug mode ([#7690](https://github.com/nuxt/framework/pull/7690))\r\n  - **cli:** Add `nuxi build-module` command ([#7610](https://github.com/nuxt/framework/pull/7610))\r\n  - **schema:** Add experimental `routesRules` shortcut ([#7954](https://github.com/nuxt/framework/pull/7954))\r\n  - **kit:** Support plugin array for `addVitePlugin` and `addWebpackPlugin` ([#8270](https://github.com/nuxt/framework/pull/8270))\r\n\r\n### 🔥 Performance\r\n\r\n  - **nitro:** Respond with early hints in node-based environments ([#7893](https://github.com/nuxt/framework/pull/7893))\r\n  - **nuxt:** ⚠️  Use component loader to add meta components ([#8167](https://github.com/nuxt/framework/pull/8167))\r\n  - **nuxt:** Remove `vue-router` dependency from minimal app ([#8188](https://github.com/nuxt/framework/pull/8188))\r\n  - **nuxt:** Improve link prefetching ([#8225](https://github.com/nuxt/framework/pull/8225))\r\n\r\n### 🩹 Fixes\r\n\r\n  - **nuxt:** Export and auto-import `clearNuxtData` ([#7710](https://github.com/nuxt/framework/pull/7710))\r\n  - **test-utils:** Support vitest v0.20.x ([#7712](https://github.com/nuxt/framework/pull/7712))\r\n  - **cli:** Include `workspaceDir` in tsconfig include ([#7726](https://github.com/nuxt/framework/pull/7726))\r\n  - **cli:** Stub `defineNuxtConfig` for `nuxi info` ([#7728](https://github.com/nuxt/framework/pull/7728))\r\n  - **nuxt:** Do not warn for non-existent default layout ([#7748](https://github.com/nuxt/framework/pull/7748))\r\n  - **nuxt:** Respect immediate option in `useFetch` ([#7720](https://github.com/nuxt/framework/pull/7720))\r\n  - **nuxt:** Respect `baseURL` when rendering payload path ([#7809](https://github.com/nuxt/framework/pull/7809))\r\n  - **nuxt:** Don't disable scripts in dev mode with experimental `noScripts` ([#7745](https://github.com/nuxt/framework/pull/7745))\r\n  - Downgrade Node.js `^16.11.0` requirement to `^16.10.0` ([#7865](https://github.com/nuxt/framework/pull/7865))\r\n  - **nuxt:** Handle schema types for relative module paths ([#7946](https://github.com/nuxt/framework/pull/7946))\r\n  - **vite:** Add type-checker to client build for `ssr: false` ([#7930](https://github.com/nuxt/framework/pull/7930))\r\n  - **nuxt:** Allow auto-import component with same filename ([#7713](https://github.com/nuxt/framework/pull/7713))\r\n  - **test-utils:** Respect `setupTimeout` ([#7866](https://github.com/nuxt/framework/pull/7866))\r\n  - **nuxt:** Fix lazy import of `.client` components ([#7422](https://github.com/nuxt/framework/pull/7422))\r\n  - **nuxt:** Remove fragment from `createClientOnly` ([#7774](https://github.com/nuxt/framework/pull/7774))\r\n  - **head:** Allow using the default slot for script content like noscript ([#7858](https://github.com/nuxt/framework/pull/7858))\r\n  - **nuxt:** Don't prerender `index.html` with a server ([#7831](https://github.com/nuxt/framework/pull/7831))\r\n  - **docs:** Link to api config reference ([#8038](https://github.com/nuxt/framework/pull/8038))\r\n  - **docs:** Link to installation section ([#8040](https://github.com/nuxt/framework/pull/8040))\r\n  - **nuxt:** Page hydration and double load ([#7940](https://github.com/nuxt/framework/pull/7940))\r\n  - **schema:** Declare `untyped` dependency ([#8064](https://github.com/nuxt/framework/pull/8064))\r\n  - **nuxt:** Use correct cache and add baseURL to payload ([#7984](https://github.com/nuxt/framework/pull/7984))\r\n  - **cli:** Replace `lazyHandle` with `defineLazyHandler` ([#8049](https://github.com/nuxt/framework/pull/8049))\r\n  - **schema:** Evaluate environment variables when resolving values ([#8079](https://github.com/nuxt/framework/pull/8079))\r\n  - **vite:** Prevent overlap between vite assets and app routes ([#7989](https://github.com/nuxt/framework/pull/7989))\r\n  - **nuxt:** Don't inline styles for per-request `ssr: false` ([#8106](https://github.com/nuxt/framework/pull/8106))\r\n  - **nuxt:** ⚠️  `refresh` to override previous requests by default ([#8190](https://github.com/nuxt/framework/pull/8190))\r\n  - **nuxt:** Enable router when `app/router.options.ts` file is present ([#8193](https://github.com/nuxt/framework/pull/8193))\r\n  - **kit:** Log module id to the console when import fails ([#8198](https://github.com/nuxt/framework/pull/8198))\r\n  - **nuxt:** Avoid head dom update on same route click ([#8206](https://github.com/nuxt/framework/pull/8206))\r\n  - **webpack:** Add global to new line ([#8226](https://github.com/nuxt/framework/pull/8226))\r\n  - **schema:** RouteRules config ([#8252](https://github.com/nuxt/framework/pull/8252))\r\n  - **cli:** Don't include`workspaceDir` in tsconfig by default ([#8256](https://github.com/nuxt/framework/pull/8256))\r\n  - **nuxt:** Avoid preloading external routes ([#8255](https://github.com/nuxt/framework/pull/8255))\r\n  - **nuxt:** Allow disabling early hints ([#8264](https://github.com/nuxt/framework/pull/8264))\r\n  - **nuxt:** Lazy-load entry CSS ([#8278](https://github.com/nuxt/framework/pull/8278))\r\n  - **nuxt:** Ignore cache rules for middleware and errors ([#8291](https://github.com/nuxt/framework/pull/8291))\r\n\r\n### 💅 Refactors\r\n\r\n  - **nuxt:** Use `unref` in `layout.ts` ([#7818](https://github.com/nuxt/framework/pull/7818))\r\n  - **nuxt:** Use `unref` in  `fetch.ts` ([#7813](https://github.com/nuxt/framework/pull/7813))\r\n  - **nuxt:** Deprecate `<Script>` component tag in template ([#8197](https://github.com/nuxt/framework/pull/8197))\r\n  - **nuxt:** Use `writeEarlyHints` from `h3` ([#8245](https://github.com/nuxt/framework/pull/8245))\r\n  - **nuxt:** Use `getRouteRules` from nitropack ([#8251](https://github.com/nuxt/framework/pull/8251))\r\n\r\n### 📖 Documentation\r\n\r\n  - **getting-started:** Fix typo in views ([#7687](https://github.com/nuxt/framework/pull/7687))\r\n  - **getting-started:** Configuration page ([#7689](https://github.com/nuxt/framework/pull/7689))\r\n  - Recommend to not overwrite some keys in tsconfig ([#7717](https://github.com/nuxt/framework/pull/7717))\r\n  - **directory-structure:** Fix typo in server ([#7752](https://github.com/nuxt/framework/pull/7752))\r\n  - **navigate-to:** Use await instead of return ([#7734](https://github.com/nuxt/framework/pull/7734))\r\n  - **error-handling:** Fix `useError()` type definition ([#7749](https://github.com/nuxt/framework/pull/7749))\r\n  - **migration:** Restructure upgrade guide ([#7730](https://github.com/nuxt/framework/pull/7730))\r\n  - Document nitro hooks ([#7782](https://github.com/nuxt/framework/pull/7782))\r\n  - **roadmap:** Update the release times for v2 and v3 ([#7808](https://github.com/nuxt/framework/pull/7808))\r\n  - **guide:** Add nitro plugins to server directory ([#7780](https://github.com/nuxt/framework/pull/7780))\r\n  - **roadmap:** Remove not working link from `nuxt/auth` ([#7781](https://github.com/nuxt/framework/pull/7781))\r\n  - Updated nuxt bridge migration guide ([#7775](https://github.com/nuxt/framework/pull/7775))\r\n  - Merge deployment pages in getting started ([#7765](https://github.com/nuxt/framework/pull/7765))\r\n  - Add newline at end of sass import ([#7810](https://github.com/nuxt/framework/pull/7810))\r\n  - **examples:** Optimize writing of ` : ? ` ([#7928](https://github.com/nuxt/framework/pull/7928))\r\n  - Update `definePageMeta` docs ([#7888](https://github.com/nuxt/framework/pull/7888))\r\n  - Use nuxt 3 and website theme ([#5479](https://github.com/nuxt/framework/pull/5479))\r\n  - **getting-started:** Add `transitions` page ([#7987](https://github.com/nuxt/framework/pull/7987))\r\n  - Fix path of nuxt config ([#8021](https://github.com/nuxt/framework/pull/8021))\r\n  - **introduction:** Add nuxt key features to the introduction ([#8013](https://github.com/nuxt/framework/pull/8013))\r\n  - **transitions:** Add poster for videos ([99907dbf](https://github.com/nuxt/framework/commit/99907dbf))\r\n  - Fix netlify redirects ([#8028](https://github.com/nuxt/framework/pull/8028))\r\n  - Use `webp` for 3D gem asset ([93c3f30b](https://github.com/nuxt/framework/commit/93c3f30b))\r\n  - Upgrade docus ([aef32577](https://github.com/nuxt/framework/commit/aef32577))\r\n  - Upgrade docus to fix docsearch input focus ([fc2d74a2](https://github.com/nuxt/framework/commit/fc2d74a2))\r\n  - Update to `website-theme@0.1.6` ([3218356d](https://github.com/nuxt/framework/commit/3218356d))\r\n  - Fix indentation in \"Views\" code blocks ([#8039](https://github.com/nuxt/framework/pull/8039))\r\n  - Fix more redirect issues ([#8045](https://github.com/nuxt/framework/pull/8045))\r\n  - **example:** Replace useQuery to getQuery ([#8047](https://github.com/nuxt/framework/pull/8047))\r\n  - Fix code highlighting ([#8057](https://github.com/nuxt/framework/pull/8057))\r\n  - Add recommendation for controlling plugin registration order. ([#8096](https://github.com/nuxt/framework/pull/8096))\r\n  - Add back deleted sections in `definePageMeta` ([c804daa0](https://github.com/nuxt/framework/commit/c804daa0))\r\n  - Update line number for `NuxtHooks` source ([#8128](https://github.com/nuxt/framework/pull/8128))\r\n  - Fix typo ([#8129](https://github.com/nuxt/framework/pull/8129))\r\n  - Update badges color ([bc3016f8](https://github.com/nuxt/framework/commit/bc3016f8))\r\n  - Add app.config route to pre-render ([#8131](https://github.com/nuxt/framework/pull/8131))\r\n  - Clarify access of RuntimeConfig with Options API ([#8147](https://github.com/nuxt/framework/pull/8147))\r\n  - Close alert ([#8157](https://github.com/nuxt/framework/pull/8157))\r\n  - Fix 404 page ([#8136](https://github.com/nuxt/framework/pull/8136))\r\n  - Use `RouterConfig` interface in examples ([#8151](https://github.com/nuxt/framework/pull/8151))\r\n  - Add support for WEBSITE_THEMe env variable ([6ad0f3f1](https://github.com/nuxt/framework/commit/6ad0f3f1))\r\n  - Update route middleware link ([#8196](https://github.com/nuxt/framework/pull/8196))\r\n  - Adds missing quote in example code ([#8209](https://github.com/nuxt/framework/pull/8209))\r\n  - Fix `validate` example ([#8231](https://github.com/nuxt/framework/pull/8231))\r\n  - Change deprecated `useBody` with `readBody` ([#8266](https://github.com/nuxt/framework/pull/8266))\r\n  - Add spacing between multiple `button-link` ([#8275](https://github.com/nuxt/framework/pull/8275))\r\n  - Add cleavr to supported hosting providers ([#8285](https://github.com/nuxt/framework/pull/8285))\r\n\r\n### 🌊 Types\r\n\r\n  - Include `nuxt-link` target types ([#8172](https://github.com/nuxt/framework/pull/8172))\r\n\r\n### 🏡 Chore\r\n\r\n  - Use pnpm for framework monorepo ([#7895](https://github.com/nuxt/framework/pull/7895))\r\n  - Add start command for stackblitz codeflow ([#8279](https://github.com/nuxt/framework/pull/8279))\r\n\r\n#### ⚠️  Breaking Changes\r\n\r\n  - **nuxt:** ⚠️  Add `<NuxtPage>` to `#components` ([#8145](https://github.com/nuxt/framework/pull/8145))\r\n  - **nuxt:** ⚠️  Use component loader to add meta components ([#8167](https://github.com/nuxt/framework/pull/8167))\r\n  - **nuxt:** ⚠️  `refresh` to override previous requests by default ([#8190](https://github.com/nuxt/framework/pull/8190))\r\n\r\n### ❤️  Contributors\r\n\r\n- Alex\r\n- Alex C\r\n- Alexander Lichter\r\n- Andrew Mudrov\r\n- Anish Ghimire\r\n- Anthony Fu\r\n- AuroraTea\r\n- Barbapapazes\r\n- Benicio Cardozo\r\n- Chenying\r\n- Christian Preston\r\n- Cinob\r\n- Clément Ollivier\r\n- Cupid Valentine\r\n- Damian Głowala\r\n- Daniel Kelly\r\n- Daniel Roe\r\n- Daniil Chudo\r\n- Fumihiro-Yano\r\n- Harlan Wilton\r\n- Israel Ortuño\r\n- James Ray\r\n- Josh Deltener\r\n- Julien Huang\r\n- Krutie Patel\r\n- Lov`u`e\r\n- Martin Benndorf\r\n- Miketromba\r\n- MiniDigger\r\n- Mmis1000\r\n- Niklas\r\n- Pooya Parsa\r\n- Rajendra\r\n- Randy\r\n- Reinier Kaper\r\n- Sébastien Chopin\r\n- Tech Genius\r\n- Tobias Diez\r\n- Toni\r\n- Tuğberk Kılıç\r\n- Won-hyeok Jung\r\n- Xezard\r\n- Yaël Guilloux\r\n- Yu Yamazaki\r\n- 菜狗\r\n\r\n","html":"<blockquote>\n<p><a href=\"https://github.com/nuxt/framework/discussions/8296\"><strong>💬  Release Discussion</strong></a></p>\n</blockquote>\n<div class=\"markdown-heading\"><h2 class=\"heading-element\">🚀 How to Upgrade</h2><a id=\"user-content--how-to-upgrade\" class=\"anchor\" aria-label=\"Permalink: 🚀 How to Upgrade\" href=\"#-how-to-upgrade\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<blockquote>\n<p><strong>Note</strong>\nMake sure to recreate the lock file in the project in case of any issues after the upgrade.</p>\n</blockquote>\n<ul>\n<li>\n<strong>Automated:</strong> <code>npx nuxi@latest upgrade --force</code>\n</li>\n<li>\n<strong>Manual:</strong> Bump <code>nuxt</code> dependency to <code>3.0.0-rc.12</code> and then use <code>npx nuxi@latest cleanup</code> to cleanup any local caches</li>\n</ul>\n<div class=\"markdown-heading\"><h2 class=\"heading-element\">⭐ What is New?</h2><a id=\"user-content--what-is-new\" class=\"anchor\" aria-label=\"Permalink: ⭐ What is New?\" href=\"#-what-is-new\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<div class=\"markdown-heading\"><h3 class=\"heading-element\">📍 Route Rules</h3><a id=\"user-content--route-rules\" class=\"anchor\" aria-label=\"Permalink: 📍 Route Rules\" href=\"#-route-rules\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<p>RC.12 comes with the first public beta for route rules and hybrid rendering support. Using route rules you can define rules for a group of nuxt routes, change rendering mode or assign a cache strategy based on route! Nuxt server will automatically register corresponding middleware and wrap routes with cache handlers using Nitro caching layer. Whenever possible, route rules will be automatically applied to the deployment platform's native rules (currently Netlify and Vercel are supported).</p>\n<p>👉 See docs for <a href=\"https://v3.nuxtjs.org/guide/concepts/rendering/#route-rules\" rel=\"nofollow\">examples and more info</a>.</p>\n<div class=\"markdown-heading\"><h3 class=\"heading-element\">⚗️ Nitropack 0.6</h3><a id=\"user-content-️-nitropack-06\" class=\"anchor\" aria-label=\"Permalink: ⚗️ Nitropack 0.6\" href=\"#️-nitropack-06\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<p>Nitropack upgraded to 0.6 (<a href=\"https://github.com/unjs/nitro/releases/tag/v0.6.0\">Release Notes</a>) and  h3 upgraded to 0.8 (<a href=\"https://github.com/unjs/h3/releases/tag/v0.8.0\">Release Notes</a>)</p>\n<p><strong><g-emoji class=\"g-emoji\" alias=\"warning\">⚠️</g-emoji> Breaking changes:</strong> Using <code>defineEventHandler()</code> or <code>eventHandler()</code> is now required. If you were previously using a Node.js middleware with <code>(req, res, next?)</code> syntax you need to wrap them with <code>fromNodeMiddleware()</code> to convert it into an h3 handler.</p>\n<div class=\"markdown-heading\"><h3 class=\"heading-element\">👦 <code>useHead</code> updates</h3><a id=\"user-content--usehead-updates\" class=\"anchor\" aria-label=\"Permalink: 👦 useHead updates\" href=\"#-usehead-updates\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<p>This release brings a brand-new version of <code>@vueuse/head</code> with some significant performance improvements and bug fixes. Check out <a href=\"https://github.com/nuxt/framework/pull/8000\">https://github.com/nuxt/framework/pull/8000</a> for more details, but in particular:</p>\n<ul>\n<li>Fully-typed usage of <code>useHead</code>\n</li>\n<li>No more flickering when transitioning between routes</li>\n<li>Support <em>ordering</em> of head metadata</li>\n<li>Faster head hydration and deduping</li>\n</ul>\n<p><strong><g-emoji class=\"g-emoji\" alias=\"warning\">⚠️</g-emoji> Breaking changes:</strong> The shortcuts <code>viewport</code> and <code>charset</code> can only be used within <code>nuxt.config</code> and not within <code>useHead</code> directly. For more information on how to update, see <a href=\"https://github.com/nuxt/framework/pull/8000\">https://github.com/nuxt/framework/pull/8000</a>.</p>\n<div class=\"markdown-heading\"><h3 class=\"heading-element\">⚡ Page Meta</h3><a id=\"user-content--page-meta\" class=\"anchor\" aria-label=\"Permalink: ⚡ Page Meta\" href=\"#-page-meta\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<p>New router options <code>validate</code> and <code>redirect</code> are now supported directly in <code>definePageMeta</code> - so you can perform additional validation for dynamic routes, or implement route redirects directly within pages.</p>\n<div class=\"highlight highlight-source-ts\"><pre><span class=\"pl-en\">definePageMeta</span><span class=\"pl-kos\">(</span><span class=\"pl-kos\">{</span>\n  <span class=\"pl-c\">// redirect: '/admin',</span>\n  <span class=\"pl-en\">validate</span>: <span class=\"pl-k\">async</span> <span class=\"pl-kos\">(</span><span class=\"pl-s1\">route</span><span class=\"pl-kos\">)</span> <span class=\"pl-c1\">=&gt;</span> <span class=\"pl-kos\">{</span>\n    <span class=\"pl-k\">const</span> <span class=\"pl-s1\">nuxtApp</span> <span class=\"pl-c1\">=</span> <span class=\"pl-en\">useNuxtApp</span><span class=\"pl-kos\">(</span><span class=\"pl-kos\">)</span>\n    <span class=\"pl-c\">// Check if the id is made up of digits</span>\n    <span class=\"pl-k\">return</span> <span class=\"pl-pds\"><span class=\"pl-c1\">/</span><span class=\"pl-cce\">^</span><span class=\"pl-cce\">\\d</span><span class=\"pl-c1\">+</span><span class=\"pl-cce\">$</span><span class=\"pl-c1\">/</span></span><span class=\"pl-kos\">.</span><span class=\"pl-en\">test</span><span class=\"pl-kos\">(</span><span class=\"pl-s1\">params</span><span class=\"pl-kos\">.</span><span class=\"pl-c1\">id</span><span class=\"pl-kos\">)</span>\n  <span class=\"pl-kos\">}</span>\n<span class=\"pl-kos\">}</span><span class=\"pl-kos\">)</span></pre></div>\n<div class=\"markdown-heading\"><h3 class=\"heading-element\">🌅 Early Hints</h3><a id=\"user-content--early-hints\" class=\"anchor\" aria-label=\"Permalink: 🌅 Early Hints\" href=\"#-early-hints\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<p>Nuxt's node server renderer will now respond with 103 Early Hints before the server renders the app, meaning that you should see a decreased TTFB and earlier resource loading in a <a href=\"https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/103#browser_compatibility\" rel=\"nofollow\">supported environment</a> - which at the moment is Chrome with your Nuxt app served over HTTPS with newer than HTTP/1.1.</p>\n<div class=\"markdown-heading\"><h3 class=\"heading-element\">📖 Nuxt 3 Docs</h3><a id=\"user-content--nuxt-3-docs\" class=\"anchor\" aria-label=\"Permalink: 📖 Nuxt 3 Docs\" href=\"#-nuxt-3-docs\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<p>Nuxt's documentation is now written with Nuxt 3's new theming system and the latest Docus and Content module versions. Check it out at <a href=\"https://v3.nuxtjs.org\" rel=\"nofollow\">https://v3.nuxtjs.org</a>! Expect more coming soon!</p>\n<p align=\"center\">\n<a target=\"_blank\" rel=\"noopener noreferrer nofollow\" href=\"https://user-images.githubusercontent.com/28706372/195312835-ac731792-9625-4dac-a0c1-8cc3e3a63619.png\"><img width=\"70%\" src=\"https://user-images.githubusercontent.com/28706372/195312835-ac731792-9625-4dac-a0c1-8cc3e3a63619.png\" alt=\"nuxt 3 docs\" style=\"max-width: 100%;\"></a>\n</p> \n<div class=\"markdown-heading\"><h2 class=\"heading-element\">Changelog</h2><a id=\"user-content-changelog\" class=\"anchor\" aria-label=\"Permalink: Changelog\" href=\"#changelog\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<p><a href=\"https://github.com/nuxt/framework/compare/v3.0.0-rc.11...release/3.0.0.rc.12\">compare changes</a></p>\n<div class=\"markdown-heading\"><h3 class=\"heading-element\">🚀 Enhancements</h3><a id=\"user-content--enhancements\" class=\"anchor\" aria-label=\"Permalink: 🚀 Enhancements\" href=\"#-enhancements\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<ul>\n<li>\n<strong>nuxt:</strong> Support <code>redirect</code> within page metadata (<a href=\"https://github.com/nuxt/framework/pull/7746\">#7746</a>)</li>\n<li>\n<strong>cli:</strong> Support <code>--dotenv</code> for <code>dev</code>, <code>build</code> and <code>preview</code> commands (<a href=\"https://github.com/nuxt/framework/pull/7660\">#7660</a>)</li>\n<li>\n<strong>nuxt:</strong> Allow configuring plugins directory (<a href=\"https://github.com/nuxt/framework/pull/7981\">#7981</a>)</li>\n<li>\n<strong>nuxt:</strong> Add default slot to <code>&lt;NuxtLoadingIndicator&gt;</code> (<a href=\"https://github.com/nuxt/framework/pull/7128\">#7128</a>)</li>\n<li>\n<strong>pages:</strong> Add <code>validate</code> hook for <code>definePageMeta</code> (<a href=\"https://github.com/nuxt/framework/pull/7870\">#7870</a>)</li>\n<li>\n<strong>nuxt:</strong> Refresh override for data fetching composables (<a href=\"https://github.com/nuxt/framework/pull/7864\">#7864</a>)</li>\n<li>\n<strong>schema, nuxt:</strong> Allow user-configurable <code>serverDir</code> (<a href=\"https://github.com/nuxt/framework/pull/7868\">#7868</a>)</li>\n<li>\n<strong>nuxt:</strong> Parse html to treeshake client-only components (<a href=\"https://github.com/nuxt/framework/pull/7527\">#7527</a>)</li>\n<li>\n<strong>nuxt:</strong> Wrap <code>#components</code> client exports with createClientOnly (<a href=\"https://github.com/nuxt/framework/pull/7412\">#7412</a>)</li>\n<li>\n<strong>nuxt:</strong> Add <code>ssr: false</code> route rule to enable SPA mode (<a href=\"https://github.com/nuxt/framework/pull/7938\">#7938</a>)</li>\n<li>\n<strong>nuxt:</strong> Migrate to latest <code>@vueuse/head</code> (<a href=\"https://github.com/nuxt/framework/pull/8000\">#8000</a>)</li>\n<li>\n<strong>nuxt:</strong> <g-emoji class=\"g-emoji\" alias=\"warning\">⚠️</g-emoji>  Add <code>&lt;NuxtPage&gt;</code> to <code>#components</code> (<a href=\"https://github.com/nuxt/framework/pull/8145\">#8145</a>)</li>\n<li>\n<strong>nuxt:</strong> Add hook debug mode (<a href=\"https://github.com/nuxt/framework/pull/7690\">#7690</a>)</li>\n<li>\n<strong>cli:</strong> Add <code>nuxi build-module</code> command (<a href=\"https://github.com/nuxt/framework/pull/7610\">#7610</a>)</li>\n<li>\n<strong>schema:</strong> Add experimental <code>routesRules</code> shortcut (<a href=\"https://github.com/nuxt/framework/pull/7954\">#7954</a>)</li>\n<li>\n<strong>kit:</strong> Support plugin array for <code>addVitePlugin</code> and <code>addWebpackPlugin</code> (<a href=\"https://github.com/nuxt/framework/pull/8270\">#8270</a>)</li>\n</ul>\n<div class=\"markdown-heading\"><h3 class=\"heading-element\">🔥 Performance</h3><a id=\"user-content--performance\" class=\"anchor\" aria-label=\"Permalink: 🔥 Performance\" href=\"#-performance\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<ul>\n<li>\n<strong>nitro:</strong> Respond with early hints in node-based environments (<a href=\"https://github.com/nuxt/framework/pull/7893\">#7893</a>)</li>\n<li>\n<strong>nuxt:</strong> <g-emoji class=\"g-emoji\" alias=\"warning\">⚠️</g-emoji>  Use component loader to add meta components (<a href=\"https://github.com/nuxt/framework/pull/8167\">#8167</a>)</li>\n<li>\n<strong>nuxt:</strong> Remove <code>vue-router</code> dependency from minimal app (<a href=\"https://github.com/nuxt/framework/pull/8188\">#8188</a>)</li>\n<li>\n<strong>nuxt:</strong> Improve link prefetching (<a href=\"https://github.com/nuxt/framework/pull/8225\">#8225</a>)</li>\n</ul>\n<div class=\"markdown-heading\"><h3 class=\"heading-element\">🩹 Fixes</h3><a id=\"user-content--fixes\" class=\"anchor\" aria-label=\"Permalink: 🩹 Fixes\" href=\"#-fixes\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<ul>\n<li>\n<strong>nuxt:</strong> Export and auto-import <code>clearNuxtData</code> (<a href=\"https://github.com/nuxt/framework/pull/7710\">#7710</a>)</li>\n<li>\n<strong>test-utils:</strong> Support vitest v0.20.x (<a href=\"https://github.com/nuxt/framework/pull/7712\">#7712</a>)</li>\n<li>\n<strong>cli:</strong> Include <code>workspaceDir</code> in tsconfig include (<a href=\"https://github.com/nuxt/framework/pull/7726\">#7726</a>)</li>\n<li>\n<strong>cli:</strong> Stub <code>defineNuxtConfig</code> for <code>nuxi info</code> (<a href=\"https://github.com/nuxt/framework/pull/7728\">#7728</a>)</li>\n<li>\n<strong>nuxt:</strong> Do not warn for non-existent default layout (<a href=\"https://github.com/nuxt/framework/pull/7748\">#7748</a>)</li>\n<li>\n<strong>nuxt:</strong> Respect immediate option in <code>useFetch</code> (<a href=\"https://github.com/nuxt/framework/pull/7720\">#7720</a>)</li>\n<li>\n<strong>nuxt:</strong> Respect <code>baseURL</code> when rendering payload path (<a href=\"https://github.com/nuxt/framework/pull/7809\">#7809</a>)</li>\n<li>\n<strong>nuxt:</strong> Don't disable scripts in dev mode with experimental <code>noScripts</code> (<a href=\"https://github.com/nuxt/framework/pull/7745\">#7745</a>)</li>\n<li>Downgrade Node.js <code>^16.11.0</code> requirement to <code>^16.10.0</code> (<a href=\"https://github.com/nuxt/framework/pull/7865\">#7865</a>)</li>\n<li>\n<strong>nuxt:</strong> Handle schema types for relative module paths (<a href=\"https://github.com/nuxt/framework/pull/7946\">#7946</a>)</li>\n<li>\n<strong>vite:</strong> Add type-checker to client build for <code>ssr: false</code> (<a href=\"https://github.com/nuxt/framework/pull/7930\">#7930</a>)</li>\n<li>\n<strong>nuxt:</strong> Allow auto-import component with same filename (<a href=\"https://github.com/nuxt/framework/pull/7713\">#7713</a>)</li>\n<li>\n<strong>test-utils:</strong> Respect <code>setupTimeout</code> (<a href=\"https://github.com/nuxt/framework/pull/7866\">#7866</a>)</li>\n<li>\n<strong>nuxt:</strong> Fix lazy import of <code>.client</code> components (<a href=\"https://github.com/nuxt/framework/pull/7422\">#7422</a>)</li>\n<li>\n<strong>nuxt:</strong> Remove fragment from <code>createClientOnly</code> (<a href=\"https://github.com/nuxt/framework/pull/7774\">#7774</a>)</li>\n<li>\n<strong>head:</strong> Allow using the default slot for script content like noscript (<a href=\"https://github.com/nuxt/framework/pull/7858\">#7858</a>)</li>\n<li>\n<strong>nuxt:</strong> Don't prerender <code>index.html</code> with a server (<a href=\"https://github.com/nuxt/framework/pull/7831\">#7831</a>)</li>\n<li>\n<strong>docs:</strong> Link to api config reference (<a href=\"https://github.com/nuxt/framework/pull/8038\">#8038</a>)</li>\n<li>\n<strong>docs:</strong> Link to installation section (<a href=\"https://github.com/nuxt/framework/pull/8040\">#8040</a>)</li>\n<li>\n<strong>nuxt:</strong> Page hydration and double load (<a href=\"https://github.com/nuxt/framework/pull/7940\">#7940</a>)</li>\n<li>\n<strong>schema:</strong> Declare <code>untyped</code> dependency (<a href=\"https://github.com/nuxt/framework/pull/8064\">#8064</a>)</li>\n<li>\n<strong>nuxt:</strong> Use correct cache and add baseURL to payload (<a href=\"https://github.com/nuxt/framework/pull/7984\">#7984</a>)</li>\n<li>\n<strong>cli:</strong> Replace <code>lazyHandle</code> with <code>defineLazyHandler</code> (<a href=\"https://github.com/nuxt/framework/pull/8049\">#8049</a>)</li>\n<li>\n<strong>schema:</strong> Evaluate environment variables when resolving values (<a href=\"https://github.com/nuxt/framework/pull/8079\">#8079</a>)</li>\n<li>\n<strong>vite:</strong> Prevent overlap between vite assets and app routes (<a href=\"https://github.com/nuxt/framework/pull/7989\">#7989</a>)</li>\n<li>\n<strong>nuxt:</strong> Don't inline styles for per-request <code>ssr: false</code> (<a href=\"https://github.com/nuxt/framework/pull/8106\">#8106</a>)</li>\n<li>\n<strong>nuxt:</strong> <g-emoji class=\"g-emoji\" alias=\"warning\">⚠️</g-emoji>  <code>refresh</code> to override previous requests by default (<a href=\"https://github.com/nuxt/framework/pull/8190\">#8190</a>)</li>\n<li>\n<strong>nuxt:</strong> Enable router when <code>app/router.options.ts</code> file is present (<a href=\"https://github.com/nuxt/framework/pull/8193\">#8193</a>)</li>\n<li>\n<strong>kit:</strong> Log module id to the console when import fails (<a href=\"https://github.com/nuxt/framework/pull/8198\">#8198</a>)</li>\n<li>\n<strong>nuxt:</strong> Avoid head dom update on same route click (<a href=\"https://github.com/nuxt/framework/pull/8206\">#8206</a>)</li>\n<li>\n<strong>webpack:</strong> Add global to new line (<a href=\"https://github.com/nuxt/framework/pull/8226\">#8226</a>)</li>\n<li>\n<strong>schema:</strong> RouteRules config (<a href=\"https://github.com/nuxt/framework/pull/8252\">#8252</a>)</li>\n<li>\n<strong>cli:</strong> Don't include<code>workspaceDir</code> in tsconfig by default (<a href=\"https://github.com/nuxt/framework/pull/8256\">#8256</a>)</li>\n<li>\n<strong>nuxt:</strong> Avoid preloading external routes (<a href=\"https://github.com/nuxt/framework/pull/8255\">#8255</a>)</li>\n<li>\n<strong>nuxt:</strong> Allow disabling early hints (<a href=\"https://github.com/nuxt/framework/pull/8264\">#8264</a>)</li>\n<li>\n<strong>nuxt:</strong> Lazy-load entry CSS (<a href=\"https://github.com/nuxt/framework/pull/8278\">#8278</a>)</li>\n<li>\n<strong>nuxt:</strong> Ignore cache rules for middleware and errors (<a href=\"https://github.com/nuxt/framework/pull/8291\">#8291</a>)</li>\n</ul>\n<div class=\"markdown-heading\"><h3 class=\"heading-element\">💅 Refactors</h3><a id=\"user-content--refactors\" class=\"anchor\" aria-label=\"Permalink: 💅 Refactors\" href=\"#-refactors\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<ul>\n<li>\n<strong>nuxt:</strong> Use <code>unref</code> in <code>layout.ts</code> (<a href=\"https://github.com/nuxt/framework/pull/7818\">#7818</a>)</li>\n<li>\n<strong>nuxt:</strong> Use <code>unref</code> in  <code>fetch.ts</code> (<a href=\"https://github.com/nuxt/framework/pull/7813\">#7813</a>)</li>\n<li>\n<strong>nuxt:</strong> Deprecate <code>&lt;Script&gt;</code> component tag in template (<a href=\"https://github.com/nuxt/framework/pull/8197\">#8197</a>)</li>\n<li>\n<strong>nuxt:</strong> Use <code>writeEarlyHints</code> from <code>h3</code> (<a href=\"https://github.com/nuxt/framework/pull/8245\">#8245</a>)</li>\n<li>\n<strong>nuxt:</strong> Use <code>getRouteRules</code> from nitropack (<a href=\"https://github.com/nuxt/framework/pull/8251\">#8251</a>)</li>\n</ul>\n<div class=\"markdown-heading\"><h3 class=\"heading-element\">📖 Documentation</h3><a id=\"user-content--documentation\" class=\"anchor\" aria-label=\"Permalink: 📖 Documentation\" href=\"#-documentation\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<ul>\n<li>\n<strong>getting-started:</strong> Fix typo in views (<a href=\"https://github.com/nuxt/framework/pull/7687\">#7687</a>)</li>\n<li>\n<strong>getting-started:</strong> Configuration page (<a href=\"https://github.com/nuxt/framework/pull/7689\">#7689</a>)</li>\n<li>Recommend to not overwrite some keys in tsconfig (<a href=\"https://github.com/nuxt/framework/pull/7717\">#7717</a>)</li>\n<li>\n<strong>directory-structure:</strong> Fix typo in server (<a href=\"https://github.com/nuxt/framework/pull/7752\">#7752</a>)</li>\n<li>\n<strong>navigate-to:</strong> Use await instead of return (<a href=\"https://github.com/nuxt/framework/pull/7734\">#7734</a>)</li>\n<li>\n<strong>error-handling:</strong> Fix <code>useError()</code> type definition (<a href=\"https://github.com/nuxt/framework/pull/7749\">#7749</a>)</li>\n<li>\n<strong>migration:</strong> Restructure upgrade guide (<a href=\"https://github.com/nuxt/framework/pull/7730\">#7730</a>)</li>\n<li>Document nitro hooks (<a href=\"https://github.com/nuxt/framework/pull/7782\">#7782</a>)</li>\n<li>\n<strong>roadmap:</strong> Update the release times for v2 and v3 (<a href=\"https://github.com/nuxt/framework/pull/7808\">#7808</a>)</li>\n<li>\n<strong>guide:</strong> Add nitro plugins to server directory (<a href=\"https://github.com/nuxt/framework/pull/7780\">#7780</a>)</li>\n<li>\n<strong>roadmap:</strong> Remove not working link from <code>nuxt/auth</code> (<a href=\"https://github.com/nuxt/framework/pull/7781\">#7781</a>)</li>\n<li>Updated nuxt bridge migration guide (<a href=\"https://github.com/nuxt/framework/pull/7775\">#7775</a>)</li>\n<li>Merge deployment pages in getting started (<a href=\"https://github.com/nuxt/framework/pull/7765\">#7765</a>)</li>\n<li>Add newline at end of sass import (<a href=\"https://github.com/nuxt/framework/pull/7810\">#7810</a>)</li>\n<li>\n<strong>examples:</strong> Optimize writing of <code>: ?</code> (<a href=\"https://github.com/nuxt/framework/pull/7928\">#7928</a>)</li>\n<li>Update <code>definePageMeta</code> docs (<a href=\"https://github.com/nuxt/framework/pull/7888\">#7888</a>)</li>\n<li>Use nuxt 3 and website theme (<a href=\"https://github.com/nuxt/framework/pull/5479\">#5479</a>)</li>\n<li>\n<strong>getting-started:</strong> Add <code>transitions</code> page (<a href=\"https://github.com/nuxt/framework/pull/7987\">#7987</a>)</li>\n<li>Fix path of nuxt config (<a href=\"https://github.com/nuxt/framework/pull/8021\">#8021</a>)</li>\n<li>\n<strong>introduction:</strong> Add nuxt key features to the introduction (<a href=\"https://github.com/nuxt/framework/pull/8013\">#8013</a>)</li>\n<li>\n<strong>transitions:</strong> Add poster for videos (<a href=\"https://github.com/nuxt/framework/commit/99907dbf\">99907dbf</a>)</li>\n<li>Fix netlify redirects (<a href=\"https://github.com/nuxt/framework/pull/8028\">#8028</a>)</li>\n<li>Use <code>webp</code> for 3D gem asset (<a href=\"https://github.com/nuxt/framework/commit/93c3f30b\">93c3f30b</a>)</li>\n<li>Upgrade docus (<a href=\"https://github.com/nuxt/framework/commit/aef32577\">aef32577</a>)</li>\n<li>Upgrade docus to fix docsearch input focus (<a href=\"https://github.com/nuxt/framework/commit/fc2d74a2\">fc2d74a2</a>)</li>\n<li>Update to <code>website-theme@0.1.6</code> (<a href=\"https://github.com/nuxt/framework/commit/3218356d\">3218356d</a>)</li>\n<li>Fix indentation in \"Views\" code blocks (<a href=\"https://github.com/nuxt/framework/pull/8039\">#8039</a>)</li>\n<li>Fix more redirect issues (<a href=\"https://github.com/nuxt/framework/pull/8045\">#8045</a>)</li>\n<li>\n<strong>example:</strong> Replace useQuery to getQuery (<a href=\"https://github.com/nuxt/framework/pull/8047\">#8047</a>)</li>\n<li>Fix code highlighting (<a href=\"https://github.com/nuxt/framework/pull/8057\">#8057</a>)</li>\n<li>Add recommendation for controlling plugin registration order. (<a href=\"https://github.com/nuxt/framework/pull/8096\">#8096</a>)</li>\n<li>Add back deleted sections in <code>definePageMeta</code> (<a href=\"https://github.com/nuxt/framework/commit/c804daa0\">c804daa0</a>)</li>\n<li>Update line number for <code>NuxtHooks</code> source (<a href=\"https://github.com/nuxt/framework/pull/8128\">#8128</a>)</li>\n<li>Fix typo (<a href=\"https://github.com/nuxt/framework/pull/8129\">#8129</a>)</li>\n<li>Update badges color (<a href=\"https://github.com/nuxt/framework/commit/bc3016f8\">bc3016f8</a>)</li>\n<li>Add app.config route to pre-render (<a href=\"https://github.com/nuxt/framework/pull/8131\">#8131</a>)</li>\n<li>Clarify access of RuntimeConfig with Options API (<a href=\"https://github.com/nuxt/framework/pull/8147\">#8147</a>)</li>\n<li>Close alert (<a href=\"https://github.com/nuxt/framework/pull/8157\">#8157</a>)</li>\n<li>Fix 404 page (<a href=\"https://github.com/nuxt/framework/pull/8136\">#8136</a>)</li>\n<li>Use <code>RouterConfig</code> interface in examples (<a href=\"https://github.com/nuxt/framework/pull/8151\">#8151</a>)</li>\n<li>Add support for WEBSITE_THEMe env variable (<a href=\"https://github.com/nuxt/framework/commit/6ad0f3f1\">6ad0f3f1</a>)</li>\n<li>Update route middleware link (<a href=\"https://github.com/nuxt/framework/pull/8196\">#8196</a>)</li>\n<li>Adds missing quote in example code (<a href=\"https://github.com/nuxt/framework/pull/8209\">#8209</a>)</li>\n<li>Fix <code>validate</code> example (<a href=\"https://github.com/nuxt/framework/pull/8231\">#8231</a>)</li>\n<li>Change deprecated <code>useBody</code> with <code>readBody</code> (<a href=\"https://github.com/nuxt/framework/pull/8266\">#8266</a>)</li>\n<li>Add spacing between multiple <code>button-link</code> (<a href=\"https://github.com/nuxt/framework/pull/8275\">#8275</a>)</li>\n<li>Add cleavr to supported hosting providers (<a href=\"https://github.com/nuxt/framework/pull/8285\">#8285</a>)</li>\n</ul>\n<div class=\"markdown-heading\"><h3 class=\"heading-element\">🌊 Types</h3><a id=\"user-content--types\" class=\"anchor\" aria-label=\"Permalink: 🌊 Types\" href=\"#-types\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<ul>\n<li>Include <code>nuxt-link</code> target types (<a href=\"https://github.com/nuxt/framework/pull/8172\">#8172</a>)</li>\n</ul>\n<div class=\"markdown-heading\"><h3 class=\"heading-element\">🏡 Chore</h3><a id=\"user-content--chore\" class=\"anchor\" aria-label=\"Permalink: 🏡 Chore\" href=\"#-chore\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<ul>\n<li>Use pnpm for framework monorepo (<a href=\"https://github.com/nuxt/framework/pull/7895\">#7895</a>)</li>\n<li>Add start command for stackblitz codeflow (<a href=\"https://github.com/nuxt/framework/pull/8279\">#8279</a>)</li>\n</ul>\n<div class=\"markdown-heading\"><h4 class=\"heading-element\"><g-emoji class=\"g-emoji\" alias=\"warning\">⚠️</g-emoji>  Breaking Changes</h4><a id=\"user-content-️--breaking-changes\" class=\"anchor\" aria-label=\"Permalink: ⚠️  Breaking Changes\" href=\"#️--breaking-changes\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<ul>\n<li>\n<strong>nuxt:</strong> <g-emoji class=\"g-emoji\" alias=\"warning\">⚠️</g-emoji>  Add <code>&lt;NuxtPage&gt;</code> to <code>#components</code> (<a href=\"https://github.com/nuxt/framework/pull/8145\">#8145</a>)</li>\n<li>\n<strong>nuxt:</strong> <g-emoji class=\"g-emoji\" alias=\"warning\">⚠️</g-emoji>  Use component loader to add meta components (<a href=\"https://github.com/nuxt/framework/pull/8167\">#8167</a>)</li>\n<li>\n<strong>nuxt:</strong> <g-emoji class=\"g-emoji\" alias=\"warning\">⚠️</g-emoji>  <code>refresh</code> to override previous requests by default (<a href=\"https://github.com/nuxt/framework/pull/8190\">#8190</a>)</li>\n</ul>\n<div class=\"markdown-heading\"><h3 class=\"heading-element\">❤️  Contributors</h3><a id=\"user-content-️--contributors\" class=\"anchor\" aria-label=\"Permalink: ❤️  Contributors\" href=\"#️--contributors\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<ul>\n<li>Alex</li>\n<li>Alex C</li>\n<li>Alexander Lichter</li>\n<li>Andrew Mudrov</li>\n<li>Anish Ghimire</li>\n<li>Anthony Fu</li>\n<li>AuroraTea</li>\n<li>Barbapapazes</li>\n<li>Benicio Cardozo</li>\n<li>Chenying</li>\n<li>Christian Preston</li>\n<li>Cinob</li>\n<li>Clément Ollivier</li>\n<li>Cupid Valentine</li>\n<li>Damian Głowala</li>\n<li>Daniel Kelly</li>\n<li>Daniel Roe</li>\n<li>Daniil Chudo</li>\n<li>Fumihiro-Yano</li>\n<li>Harlan Wilton</li>\n<li>Israel Ortuño</li>\n<li>James Ray</li>\n<li>Josh Deltener</li>\n<li>Julien Huang</li>\n<li>Krutie Patel</li>\n<li>Lov<code>u</code>e</li>\n<li>Martin Benndorf</li>\n<li>Miketromba</li>\n<li>MiniDigger</li>\n<li>Mmis1000</li>\n<li>Niklas</li>\n<li>Pooya Parsa</li>\n<li>Rajendra</li>\n<li>Randy</li>\n<li>Reinier Kaper</li>\n<li>Sébastien Chopin</li>\n<li>Tech Genius</li>\n<li>Tobias Diez</li>\n<li>Toni</li>\n<li>Tuğberk Kılıç</li>\n<li>Won-hyeok Jung</li>\n<li>Xezard</li>\n<li>Yaël Guilloux</li>\n<li>Yu Yamazaki</li>\n<li>菜狗</li>\n</ul>\n","assets":[]},{"id":77679679,"tag":"v3.0.0-rc.11","author":"pi0","name":"v3.0.0-rc.11","draft":false,"prerelease":false,"createdAt":"2022-09-20T16:38:31Z","publishedAt":"2022-09-20T16:41:44Z","markdown":"> 💬 Join the [**release discussion**](https://github.com/nuxt/framework/discussions/7691)\r\n\r\n## 🚀 How to Upgrade\r\n\r\n> **Note**\r\n> Make sure to recreate the lock file in the project in case of any issues after the upgrade.\r\n\r\n- **Automated:** `npx nuxi@latest upgrade --force`\r\n- **Manual:** Bump `nuxt` dependency to `3.0.0-rc.11` and then use `npx nuxi@latest cleanup` to cleanup any local caches\r\n\r\n## ⭐ What is New?\r\n\r\n### Full Static Enhancements\r\n\r\nWe have introduced Full-Static mode payload extraction in RC.10. Many of the issues from the initial implementation are resolved with this release thanks to your amazing feedback! Notably for SPA routes and state that is now in the initial state.\r\n\r\n🧪 We understand that there might be still issues with the new implementation. Please report if spotted any. You can use new `experimental.payloadExtraction: false` flag in `nuxt.config` to opt-out as well.\r\n\r\n### IPv6 and HTTPS support for `nuxi dev` and vite\r\n\r\nNuxi CLI and [unjs/listhen](https://github.com/unjs/listhen) are improved and now support `--https` flag and ipv6 hosts out of the box with an auto-generated certificate. You can use `--ssl-cert` and `--ssl-key` to provide own generated SSL certificates with [mkcert](https://github.com/FiloSottile/mkcert) for example as well.\r\n\r\nIssues with vite HMR and vite-node should be resolved as well. If you were previously using `NODE_TLS_REJECT_UNAUTHORIZED` or custom `vite.server.hmr` options for a workaround, you can try to remove them.\r\n\r\n**Note:** If you see something like `http://[::]:3000/` when running `nuxi preview`, it is all normal! The New IPv6 URL works in all modern browsers and is also backward compatible with IPv4 interfaces. If for some reason encountered any issues, try setting `HOST` to `0.0.0.0` to disable IPv6 listener.\r\n\r\n### Nitro Improvements\r\n\r\nNitro is the server engine for Nuxt 3. We had landed several fixes in [0.5.2 and 0.5.3](https://github.com/unjs/nitro/blob/main/CHANGELOG.md#v053) versions improving stability and bug fixes.\r\n\r\n## Full Changelog\r\n\r\n[compare changes](https://github.com/nuxt/framework/compare/v3.0.0-rc.10...v3.0.0.rc.11)\r\n\r\n\r\n### 🚀 Enhancements\r\n\r\n  - **kit:** `useNitro()` utility ([#7557](https://github.com/nuxt/framework/pull/7557))\r\n  - Allow disabling payload extraction ([#7588](https://github.com/nuxt/framework/pull/7588))\r\n\r\n### 🩹 Fixes\r\n\r\n  - **nuxt:** Disable payload extraction for spa generated pages ([#7535](https://github.com/nuxt/framework/pull/7535))\r\n  - **nuxt:** Do not pass prefetched class to custom link ([#7522](https://github.com/nuxt/framework/pull/7522))\r\n  - **cli:** Improved self-signed certificate for `nuxi dev --https` ([#7545](https://github.com/nuxt/framework/pull/7545))\r\n  - **vite:** `nuxi dev --https` working out of the box ([#7547](https://github.com/nuxt/framework/pull/7547))\r\n  - **schema:** Update resolver for `cssSourceMap` with new `sourcemap` format [bridge] ([#7541](https://github.com/nuxt/framework/pull/7541))\r\n  - **nuxt:** Pass fully resolved path to nitro dist files ([#7494](https://github.com/nuxt/framework/pull/7494))\r\n  - **nuxt:** Remove modulepreload for spa fallback routes with `ssr:true` ([#7553](https://github.com/nuxt/framework/pull/7553))\r\n  - **schema:** Only disallow vite server port and host ([#7554](https://github.com/nuxt/framework/pull/7554))\r\n  - **nuxi, vite:** Ipv6 support for `nuxi dev` ([#7560](https://github.com/nuxt/framework/pull/7560))\r\n  - **cli:** Print resolved public directory after generate ([#7577](https://github.com/nuxt/framework/pull/7577))\r\n  - **nuxt:** Load payload after middleware and once final route is resolved ([#7574](https://github.com/nuxt/framework/pull/7574))\r\n  - **nuxt:** Keep `state` in the initial state instead of extracting it ([#7567](https://github.com/nuxt/framework/pull/7567))\r\n  - **vite:** Normalize vite-node error data from server ([#7589](https://github.com/nuxt/framework/pull/7589))\r\n  - **vite:** Include id and stack in `vite-node` fallback error handler ([#7575](https://github.com/nuxt/framework/pull/7575))\r\n  - **vite:** Respect `ctx.nuxt.options.modulesDir` for resolving externals with `vite-node` ([#7612](https://github.com/nuxt/framework/pull/7612))\r\n  - **nuxt:** Add missing `process.client` for early redirect in `navigateTo`([#7625](https://github.com/nuxt/framework/pull/7625))\r\n  - **vite-node:** Include importer in error stack ([#7607](https://github.com/nuxt/framework/pull/7607))\r\n  - **vite, webpack:** Avoid generating keys where a key is already provided ([#7622](https://github.com/nuxt/framework/pull/7622))\r\n  - **vite, webpack:** Handle auto keys for composables without args ([#7651](https://github.com/nuxt/framework/pull/7651))\r\n  - **nuxt:** Don't tree shake client-only fallback templates ([#7659](https://github.com/nuxt/framework/pull/7659))\r\n  - **nuxt:** Strip non-`.vue` extensions from component types ([#7673](https://github.com/nuxt/framework/pull/7673))\r\n  - **nuxt:** Only observe tag elements for `<NuxtLink>` prefetching ([#7679](https://github.com/nuxt/framework/pull/7679))\r\n  - **nuxi, vite:** Support HTTPS with custom domain and HMR ([#7680](https://github.com/nuxt/framework/pull/7680))\r\n\r\n### 📖 Documentation\r\n\r\n  - Update auto-imports link ([#7530](https://github.com/nuxt/framework/pull/7530))\r\n  - Add note about link prefetching ([#7540](https://github.com/nuxt/framework/pull/7540))\r\n  - Improve NuxtLink prefetch explanation ([#7540](https://github.com/nuxt/framework/pull/7540))\r\n  - Add testing and `addComponent` to modules and update `addImports` ([#7543](https://github.com/nuxt/framework/pull/7543))\r\n  - Fix typo on directory-structure/pages ([#7601](https://github.com/nuxt/framework/pull/7601))\r\n  - Fix typo in custom router example ([8621c860](https://github.com/nuxt/framework/commit/8621c860))\r\n  - Fix typo in nitro options in wasm example ([#7639](https://github.com/nuxt/framework/pull/7639))\r\n  - Add `addImportsSources` to list of kit utils ([#7636](https://github.com/nuxt/framework/pull/7636))\r\n  - **api:** Add `defineNuxtComponent` page ([#7618](https://github.com/nuxt/framework/pull/7618))\r\n  - **testing:** Move modules testing section to module authors guide ([#7643](https://github.com/nuxt/framework/pull/7643))\r\n  - **getting-started:** Add views page ([#7556](https://github.com/nuxt/framework/pull/7556))\r\n\r\n### ❤️  Contributors\r\n\r\n- Alexander Lichter\r\n- Alper Doğan\r\n- Chenying\r\n- Clément Ollivier\r\n- Damian Głowala\r\n- Daniel Roe\r\n- Julien Huang\r\n- Krutie Patel\r\n- Lexpeartha\r\n- Pooya Parsa\r\n- YIngChenIt\r\n","html":"<blockquote>\n<p>💬 Join the <a href=\"https://github.com/nuxt/framework/discussions/7691\"><strong>release discussion</strong></a></p>\n</blockquote>\n<div class=\"markdown-heading\"><h2 class=\"heading-element\">🚀 How to Upgrade</h2><a id=\"user-content--how-to-upgrade\" class=\"anchor\" aria-label=\"Permalink: 🚀 How to Upgrade\" href=\"#-how-to-upgrade\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<blockquote>\n<p><strong>Note</strong>\nMake sure to recreate the lock file in the project in case of any issues after the upgrade.</p>\n</blockquote>\n<ul>\n<li>\n<strong>Automated:</strong> <code>npx nuxi@latest upgrade --force</code>\n</li>\n<li>\n<strong>Manual:</strong> Bump <code>nuxt</code> dependency to <code>3.0.0-rc.11</code> and then use <code>npx nuxi@latest cleanup</code> to cleanup any local caches</li>\n</ul>\n<div class=\"markdown-heading\"><h2 class=\"heading-element\">⭐ What is New?</h2><a id=\"user-content--what-is-new\" class=\"anchor\" aria-label=\"Permalink: ⭐ What is New?\" href=\"#-what-is-new\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<div class=\"markdown-heading\"><h3 class=\"heading-element\">Full Static Enhancements</h3><a id=\"user-content-full-static-enhancements\" class=\"anchor\" aria-label=\"Permalink: Full Static Enhancements\" href=\"#full-static-enhancements\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<p>We have introduced Full-Static mode payload extraction in RC.10. Many of the issues from the initial implementation are resolved with this release thanks to your amazing feedback! Notably for SPA routes and state that is now in the initial state.</p>\n<p>🧪 We understand that there might be still issues with the new implementation. Please report if spotted any. You can use new <code>experimental.payloadExtraction: false</code> flag in <code>nuxt.config</code> to opt-out as well.</p>\n<div class=\"markdown-heading\"><h3 class=\"heading-element\">IPv6 and HTTPS support for <code>nuxi dev</code> and vite</h3><a id=\"user-content-ipv6-and-https-support-for-nuxi-dev-and-vite\" class=\"anchor\" aria-label=\"Permalink: IPv6 and HTTPS support for nuxi dev and vite\" href=\"#ipv6-and-https-support-for-nuxi-dev-and-vite\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<p>Nuxi CLI and <a href=\"https://github.com/unjs/listhen\">unjs/listhen</a> are improved and now support <code>--https</code> flag and ipv6 hosts out of the box with an auto-generated certificate. You can use <code>--ssl-cert</code> and <code>--ssl-key</code> to provide own generated SSL certificates with <a href=\"https://github.com/FiloSottile/mkcert\">mkcert</a> for example as well.</p>\n<p>Issues with vite HMR and vite-node should be resolved as well. If you were previously using <code>NODE_TLS_REJECT_UNAUTHORIZED</code> or custom <code>vite.server.hmr</code> options for a workaround, you can try to remove them.</p>\n<p><strong>Note:</strong> If you see something like <code>http://[::]:3000/</code> when running <code>nuxi preview</code>, it is all normal! The New IPv6 URL works in all modern browsers and is also backward compatible with IPv4 interfaces. If for some reason encountered any issues, try setting <code>HOST</code> to <code>0.0.0.0</code> to disable IPv6 listener.</p>\n<div class=\"markdown-heading\"><h3 class=\"heading-element\">Nitro Improvements</h3><a id=\"user-content-nitro-improvements\" class=\"anchor\" aria-label=\"Permalink: Nitro Improvements\" href=\"#nitro-improvements\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<p>Nitro is the server engine for Nuxt 3. We had landed several fixes in <a href=\"https://github.com/unjs/nitro/blob/main/CHANGELOG.md#v053\">0.5.2 and 0.5.3</a> versions improving stability and bug fixes.</p>\n<div class=\"markdown-heading\"><h2 class=\"heading-element\">Full Changelog</h2><a id=\"user-content-full-changelog\" class=\"anchor\" aria-label=\"Permalink: Full Changelog\" href=\"#full-changelog\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<p><a href=\"https://github.com/nuxt/framework/compare/v3.0.0-rc.10...v3.0.0.rc.11\">compare changes</a></p>\n<div class=\"markdown-heading\"><h3 class=\"heading-element\">🚀 Enhancements</h3><a id=\"user-content--enhancements\" class=\"anchor\" aria-label=\"Permalink: 🚀 Enhancements\" href=\"#-enhancements\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<ul>\n<li>\n<strong>kit:</strong> <code>useNitro()</code> utility (<a href=\"https://github.com/nuxt/framework/pull/7557\">#7557</a>)</li>\n<li>Allow disabling payload extraction (<a href=\"https://github.com/nuxt/framework/pull/7588\">#7588</a>)</li>\n</ul>\n<div class=\"markdown-heading\"><h3 class=\"heading-element\">🩹 Fixes</h3><a id=\"user-content--fixes\" class=\"anchor\" aria-label=\"Permalink: 🩹 Fixes\" href=\"#-fixes\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<ul>\n<li>\n<strong>nuxt:</strong> Disable payload extraction for spa generated pages (<a href=\"https://github.com/nuxt/framework/pull/7535\">#7535</a>)</li>\n<li>\n<strong>nuxt:</strong> Do not pass prefetched class to custom link (<a href=\"https://github.com/nuxt/framework/pull/7522\">#7522</a>)</li>\n<li>\n<strong>cli:</strong> Improved self-signed certificate for <code>nuxi dev --https</code> (<a href=\"https://github.com/nuxt/framework/pull/7545\">#7545</a>)</li>\n<li>\n<strong>vite:</strong> <code>nuxi dev --https</code> working out of the box (<a href=\"https://github.com/nuxt/framework/pull/7547\">#7547</a>)</li>\n<li>\n<strong>schema:</strong> Update resolver for <code>cssSourceMap</code> with new <code>sourcemap</code> format [bridge] (<a href=\"https://github.com/nuxt/framework/pull/7541\">#7541</a>)</li>\n<li>\n<strong>nuxt:</strong> Pass fully resolved path to nitro dist files (<a href=\"https://github.com/nuxt/framework/pull/7494\">#7494</a>)</li>\n<li>\n<strong>nuxt:</strong> Remove modulepreload for spa fallback routes with <code>ssr:true</code> (<a href=\"https://github.com/nuxt/framework/pull/7553\">#7553</a>)</li>\n<li>\n<strong>schema:</strong> Only disallow vite server port and host (<a href=\"https://github.com/nuxt/framework/pull/7554\">#7554</a>)</li>\n<li>\n<strong>nuxi, vite:</strong> Ipv6 support for <code>nuxi dev</code> (<a href=\"https://github.com/nuxt/framework/pull/7560\">#7560</a>)</li>\n<li>\n<strong>cli:</strong> Print resolved public directory after generate (<a href=\"https://github.com/nuxt/framework/pull/7577\">#7577</a>)</li>\n<li>\n<strong>nuxt:</strong> Load payload after middleware and once final route is resolved (<a href=\"https://github.com/nuxt/framework/pull/7574\">#7574</a>)</li>\n<li>\n<strong>nuxt:</strong> Keep <code>state</code> in the initial state instead of extracting it (<a href=\"https://github.com/nuxt/framework/pull/7567\">#7567</a>)</li>\n<li>\n<strong>vite:</strong> Normalize vite-node error data from server (<a href=\"https://github.com/nuxt/framework/pull/7589\">#7589</a>)</li>\n<li>\n<strong>vite:</strong> Include id and stack in <code>vite-node</code> fallback error handler (<a href=\"https://github.com/nuxt/framework/pull/7575\">#7575</a>)</li>\n<li>\n<strong>vite:</strong> Respect <code>ctx.nuxt.options.modulesDir</code> for resolving externals with <code>vite-node</code> (<a href=\"https://github.com/nuxt/framework/pull/7612\">#7612</a>)</li>\n<li>\n<strong>nuxt:</strong> Add missing <code>process.client</code> for early redirect in <code>navigateTo</code>(<a href=\"https://github.com/nuxt/framework/pull/7625\">#7625</a>)</li>\n<li>\n<strong>vite-node:</strong> Include importer in error stack (<a href=\"https://github.com/nuxt/framework/pull/7607\">#7607</a>)</li>\n<li>\n<strong>vite, webpack:</strong> Avoid generating keys where a key is already provided (<a href=\"https://github.com/nuxt/framework/pull/7622\">#7622</a>)</li>\n<li>\n<strong>vite, webpack:</strong> Handle auto keys for composables without args (<a href=\"https://github.com/nuxt/framework/pull/7651\">#7651</a>)</li>\n<li>\n<strong>nuxt:</strong> Don't tree shake client-only fallback templates (<a href=\"https://github.com/nuxt/framework/pull/7659\">#7659</a>)</li>\n<li>\n<strong>nuxt:</strong> Strip non-<code>.vue</code> extensions from component types (<a href=\"https://github.com/nuxt/framework/pull/7673\">#7673</a>)</li>\n<li>\n<strong>nuxt:</strong> Only observe tag elements for <code>&lt;NuxtLink&gt;</code> prefetching (<a href=\"https://github.com/nuxt/framework/pull/7679\">#7679</a>)</li>\n<li>\n<strong>nuxi, vite:</strong> Support HTTPS with custom domain and HMR (<a href=\"https://github.com/nuxt/framework/pull/7680\">#7680</a>)</li>\n</ul>\n<div class=\"markdown-heading\"><h3 class=\"heading-element\">📖 Documentation</h3><a id=\"user-content--documentation\" class=\"anchor\" aria-label=\"Permalink: 📖 Documentation\" href=\"#-documentation\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<ul>\n<li>Update auto-imports link (<a href=\"https://github.com/nuxt/framework/pull/7530\">#7530</a>)</li>\n<li>Add note about link prefetching (<a href=\"https://github.com/nuxt/framework/pull/7540\">#7540</a>)</li>\n<li>Improve NuxtLink prefetch explanation (<a href=\"https://github.com/nuxt/framework/pull/7540\">#7540</a>)</li>\n<li>Add testing and <code>addComponent</code> to modules and update <code>addImports</code> (<a href=\"https://github.com/nuxt/framework/pull/7543\">#7543</a>)</li>\n<li>Fix typo on directory-structure/pages (<a href=\"https://github.com/nuxt/framework/pull/7601\">#7601</a>)</li>\n<li>Fix typo in custom router example (<a href=\"https://github.com/nuxt/framework/commit/8621c860\">8621c860</a>)</li>\n<li>Fix typo in nitro options in wasm example (<a href=\"https://github.com/nuxt/framework/pull/7639\">#7639</a>)</li>\n<li>Add <code>addImportsSources</code> to list of kit utils (<a href=\"https://github.com/nuxt/framework/pull/7636\">#7636</a>)</li>\n<li>\n<strong>api:</strong> Add <code>defineNuxtComponent</code> page (<a href=\"https://github.com/nuxt/framework/pull/7618\">#7618</a>)</li>\n<li>\n<strong>testing:</strong> Move modules testing section to module authors guide (<a href=\"https://github.com/nuxt/framework/pull/7643\">#7643</a>)</li>\n<li>\n<strong>getting-started:</strong> Add views page (<a href=\"https://github.com/nuxt/framework/pull/7556\">#7556</a>)</li>\n</ul>\n<div class=\"markdown-heading\"><h3 class=\"heading-element\">❤️  Contributors</h3><a id=\"user-content-️--contributors\" class=\"anchor\" aria-label=\"Permalink: ❤️  Contributors\" href=\"#️--contributors\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<ul>\n<li>Alexander Lichter</li>\n<li>Alper Doğan</li>\n<li>Chenying</li>\n<li>Clément Ollivier</li>\n<li>Damian Głowala</li>\n<li>Daniel Roe</li>\n<li>Julien Huang</li>\n<li>Krutie Patel</li>\n<li>Lexpeartha</li>\n<li>Pooya Parsa</li>\n<li>YIngChenIt</li>\n</ul>\n","assets":[]},{"id":77164549,"tag":"v3.0.0-rc.10","author":"pi0","name":"v3.0.0-rc.10","draft":false,"prerelease":false,"createdAt":"2022-09-14T16:27:11Z","publishedAt":"2022-09-14T16:33:08Z","markdown":"💬 Join the [release discussion](https://github.com/nuxt/framework/discussions/7513)\r\n\r\n## 🚀 How to Upgrade\r\n\r\n> **Note**\r\n> Make sure to recreate the lock file in the project in case of any issues after the upgrade.\r\n\r\n- **Automated:** `npx nuxi@latest upgrade --force`\r\n- **Manual:** Bump `nuxt` dependency to `3.0.0-rc.10` and then use `npx nuxi@latest cleanup` to cleanup any local caches\r\n\r\n## ⭐ What is new?\r\n\r\n### Critical Styles are Inlined\r\n\r\n[#6755](https://github.com/nuxt/framework/issues/6755), [#7160](https://github.com/nuxt/framework/pull/7160)\r\n\r\nGlobal styles and used component styles are now automatically inlined when server-side rendering a page. This feature helps to improve the [First Contentful Paint (FCP)](https://web.dev/fcp/) metric.\r\n\r\n🧪 You can disable the feature from `nuxt.config` using `experimental: { inlineSSRStyles: false }` in case of any issues.\r\n\r\n### Full Static Generation with Payload Rendering\r\n\r\n[#6411](https://github.com/nuxt/framework/issues/6411), [#6455](https://github.com/nuxt/framework/pull/6455)\r\n\r\nIn Nuxt 2, we introduced an amazing feature called [Full Static Generation](https://nuxtjs.org/announcements/going-full-static/). When using `nuxt generate`, the payload of each page containing asyncData and state is extracted to a `.js` chunk and we can deploy output to any static hosting without requiring a hosted API server. This feature also introduced performance benefits to reduce page size and allow smartly prefetching payload of next pages ahead of time when using `nuxt generate` but kept limited to it. \r\n\r\nThis feature is now back in Nuxt 3 but much better! Payload is not only extracted during prerendering phase (`nuxt generate`) but also can be rendered on demand by simply appending `/_payload.js` to the end of any URL. This made implementation much simpler and also unlocks future development to enable payload rendering for **hybrid** static server and **incremental** generated pages. Followup [#6411](https://github.com/nuxt/framework/issues/6411) for the roadmap.\r\n\r\n### Link Prefetching\r\n\r\n[#4329](https://github.com/nuxt/framework/pull/4329)\r\n\r\nAnother goodie ported from Nuxt 2, is automatically prefetching the next pages when a `<NuxtLink>` is in the viewport.\r\n\r\nThis feature is integrated with vue-router to prefetch components of the next route and also payload extraction to prefetch the payload of the next pages ahead of time! You can also hook into `link:prefetch` to do more prefetches.\r\n\r\n### Better Workspace Support\r\n\r\n[unjs/pkg-types#34](https://github.com/unjs/pkg-types/pull/34), [#7439](https://github.com/nuxt/framework/pull/7439)\r\n\r\nNuxt has several configurations for directories including `rootDir` where `nuxt.config`, `package.json`, etc is, and `srcDir` which is the same as `rootDir` by default but can be customized to move project code such as `pages/` to the `src/` directory. With [Monorepo](https://monorepo.tools/) becoming more popular, it became clear we need another new option to act smarter in a monorepo. \r\n\r\nWe have introduced a new `workspaceDir` configuration. It is **automatically detected** from rootDir using different heuristics ([how?](https://github.com/unjs/pkg-types#findworkspacedir)). This option is used to extend the search path for `node_modules` via [#7439](https://github.com/nuxt/framework/pull/7439) but we will keep spreading its use in other places.\r\n\r\n🧪 You can manually set `workspaceDir` from `nuxt.config` in case of any issues.\r\n\r\n### `defineNuxtConfig` is Auto Imported\r\n\r\n[#7267](https://github.com/nuxt/framework/issues/7267), [#7485](https://github.com/nuxt/framework/pull/7485), [#7497](https://github.com/nuxt/framework/pull/7497)\r\n\r\nNuxt uses [unjs/jiti](https://github.com/unjs/jiti) in order to support typescript and ESM syntax for `nuxt.config`. \r\nWhen importing `{ defineNuxtConfig } from 'nuxt'` in Nuxt 3, it causes the whole nuxt package to be loaded. It was making startup time slower.\r\n\r\nWe have introduced a new `nuxt/config` subpath export that only exports `defineNuxtConfig` for type support but you don't even need this anymore! Just remove import and enjoy shorter syntax!\r\n\r\n```diff\r\n-- import { defineNuxtConfig } from 'nuxt'\r\nexport default defineNuxtConfig({\r\n})\r\n```\r\n\r\n### More Powerful `nuxt init`\r\n\r\nWe have switched to [unjs/giget](https://github.com/unjs/giget) for a much more powerful template init engine. \r\n\r\nNormally `nuxi init` command should work as it was before. If you were using `nuxt init org/repo` to clone the 3rd party GitHub repository, you should use `nuxi init gh:org/repo` now.\r\n\r\n### Experimental Zero-Client-JS Mode\r\n\r\n[#7156](https://github.com/nuxt/framework/issues/7156), [#7248](https://github.com/nuxt/framework/pull/7248)\r\n\r\nThis new experimental flag allows turning off all Nuxt client js code when server-side rendering a page. \r\n\r\nUsing this feature is advisable for the very small minority of sites that would not benefit from client-side JS.\r\n\r\nYou can try this feature by setting `experimental: { noScripts: true }` and let us know what you think!\r\n\r\n----\r\n\r\n## Changelog\r\n\r\n([see all commits](https://github.com/nuxt/framework/compare/v3.0.0-rc.9...v3.0.0-rc.10))\r\n\r\n### 🚀 Enhancements\r\n\r\n  - **nuxt, vite:** Inline global and component styles in server response ([#7160](https://github.com/nuxt/framework/pull/7160))\r\n  - **nuxt:** Custom `history` and `routes` for `app/router.options.ts` ([#7129](https://github.com/nuxt/framework/pull/7129))\r\n  - **nuxt:** Router with hash mode ([#6980](https://github.com/nuxt/framework/pull/6980))\r\n  - **nuxt:** Allow extending routes with custom alias ([#7074](https://github.com/nuxt/framework/pull/7074))\r\n  - **test-utils:** Add `mockFn` and `mockLogger` utils ([#6235](https://github.com/nuxt/framework/pull/6235))\r\n  - **nuxt:** Support experimental flag to render no client-side js ([#7248](https://github.com/nuxt/framework/pull/7248))\r\n  - **kit:** Add `addImportsSources` utility ([#7270](https://github.com/nuxt/framework/pull/7270))\r\n  - **nuxt:** Add `immediate` option for `useAsyncData` and `useFetch` ([#5500](https://github.com/nuxt/framework/pull/5500))\r\n  - **nuxt:** Add `clearNuxtData` ([#5227](https://github.com/nuxt/framework/pull/5227))\r\n  - Allow client-side sourcemaps in production ([#7313](https://github.com/nuxt/framework/pull/7313))\r\n  - **nuxt:** Filter support for `clearNuxtData` ([#7323](https://github.com/nuxt/framework/pull/7323))\r\n  - **cli:** Switch to `unjs/giget` for `nuxi init` ([#7361](https://github.com/nuxt/framework/pull/7361))\r\n  - **cli:** ⚠️  Use giget 0.1x with template registry for `nuxi init` ([#7404](https://github.com/nuxt/framework/pull/7404))\r\n  - **nuxt:** Payload rendering support ([#6455](https://github.com/nuxt/framework/pull/6455))\r\n  - **nuxt:** Allow exposing type augmentations from extends layers ([#7442](https://github.com/nuxt/framework/pull/7442))\r\n  - **nuxt:** Add `workspaceDir` option and add it to `modulesDir` ([#7439](https://github.com/nuxt/framework/pull/7439))\r\n  - **nuxt:** Support prefetching `<nuxt-link>` ([#4329](https://github.com/nuxt/framework/pull/4329))\r\n  - **nuxt:** Allow passing transition & keepalive props to `<NuxtPage>` ([#7492](https://github.com/nuxt/framework/pull/7492))\r\n  - **nuxt, kit:** Auto import `defineNuxtConfig` ([#7497](https://github.com/nuxt/framework/pull/7497))\r\n  - **nuxt:** Generate spa fallback for `nuxt generate` ([#7507](https://github.com/nuxt/framework/pull/7507))\r\n\r\n### 🔥 Performance\r\n\r\n  - **nuxt:** Cache `createClientOnly` wrapper using weakmap ([#7297](https://github.com/nuxt/framework/pull/7297))\r\n  - **vite:** Remove duplicate css links from rendered page when inlined ([#7264](https://github.com/nuxt/framework/pull/7264))\r\n  - **nuxt:** Only inject preload helper when webpack is used ([#7460](https://github.com/nuxt/framework/pull/7460))\r\n  - **nuxt:** Import `defineNuxtConfig` from `nuxt/config` ([#7485](https://github.com/nuxt/framework/pull/7485))\r\n  - Enable `treeshakeClientOnly` flag by default ([#7484](https://github.com/nuxt/framework/pull/7484))\r\n\r\n### 🩹 Fixes\r\n\r\n  - **nuxt:** Update default redirect code of `navigateTo` to `302 Found` ([#7189](https://github.com/nuxt/framework/pull/7189))\r\n  - **head:** Case `http-equiv` correctly ([#7190](https://github.com/nuxt/framework/pull/7190))\r\n  - **kit, nuxi:** Semver regexp to support `nuxt-edge` current releases (bridge) ([#7193](https://github.com/nuxt/framework/pull/7193))\r\n  - **vite:** Use baseURL + assetsDir as base in dev mode ([#7234](https://github.com/nuxt/framework/pull/7234))\r\n  - **vite:** Pass ssr condition to `getModuleByUrl` ([#7260](https://github.com/nuxt/framework/pull/7260))\r\n  - **nuxt:** Import and wrap client-only components once ([#7245](https://github.com/nuxt/framework/pull/7245))\r\n  - **cli:** Pass value of `https` through to vite-node ([#7271](https://github.com/nuxt/framework/pull/7271))\r\n  - **nuxt:** Don't override payload error if it is present ([#7290](https://github.com/nuxt/framework/pull/7290))\r\n  - **nuxt:** Don't try to set cookie after redirect ([#7288](https://github.com/nuxt/framework/pull/7288))\r\n  - **webpack:** Promisify webpack dev/hot handlers using `h3.promisifyHandler` ([#7275](https://github.com/nuxt/framework/pull/7275))\r\n  - **schema:** Disallow setting vite server properties ([#7317](https://github.com/nuxt/framework/pull/7317))\r\n  - **schema:** Mark vite server as optional ([#7327](https://github.com/nuxt/framework/pull/7327))\r\n  - **nuxt:** Allow `abortMiddleware` to receive a nuxt error or error options ([#7335](https://github.com/nuxt/framework/pull/7335))\r\n  - **webpack:** Don't parse styles for composable keys ([#7333](https://github.com/nuxt/framework/pull/7333))\r\n  - **vite:** Allow overriding vite sourcemap ([#7342](https://github.com/nuxt/framework/pull/7342))\r\n  - **schema:** Resolve `ssr` ([#7359](https://github.com/nuxt/framework/pull/7359))\r\n  - **kit:** Add default config layer without `nuxt.config` file ([#7358](https://github.com/nuxt/framework/pull/7358))\r\n  - **vite:** Update render if it is invalidated ([#7347](https://github.com/nuxt/framework/pull/7347))\r\n  - **vite:** Warmup improvements ([#7377](https://github.com/nuxt/framework/pull/7377))\r\n  - **cli:** Don't include an array of paths within an array ([#7378](https://github.com/nuxt/framework/pull/7378))\r\n  - **vite:** Write dev manifest before spa build ([#7380](https://github.com/nuxt/framework/pull/7380))\r\n  - **nuxt:** De-default layout/component imports ([#7389](https://github.com/nuxt/framework/pull/7389))\r\n  - **nuxt:** Always inline entry styles ([#7386](https://github.com/nuxt/framework/pull/7386))\r\n  - **nuxt:** Do not apply import protection to top-level resolution ([#7344](https://github.com/nuxt/framework/pull/7344))\r\n  - **nuxt:** Use more specific `FetchError` for `useFetch` errors ([#7435](https://github.com/nuxt/framework/pull/7435))\r\n  - **vite:** Use same asset filenames between server and client ([#7436](https://github.com/nuxt/framework/pull/7436))\r\n  - **nuxt:** Augment GlobalComponents from `@vue/runtime-core` ([#7448](https://github.com/nuxt/framework/pull/7448))\r\n  - **vite:** Don't fail builds for virtual modules that don't support inlining ([#7440](https://github.com/nuxt/framework/pull/7440))\r\n  - **nuxt:** Only delete assets when building ([#7486](https://github.com/nuxt/framework/pull/7486))\r\n - **vite:** Show formatted vite-node errors ([#7509](https://github.com/nuxt/framework/pull/7509))\r\n- **vite:** Disable server warmup with `vite-node` ([#7512](https://github.com/nuxt/framework/pull/7512))\r\n\r\n### 💅 Refactors\r\n\r\n  - **vite:** Reuse resolved server entry from context ([#7268](https://github.com/nuxt/framework/pull/7268))\r\n  - **schema:** Upgrade to untyped 0.5 ([#7452](https://github.com/nuxt/framework/pull/7452))\r\n  - **nuxt:** Use relative imports into composables ([#7487](https://github.com/nuxt/framework/pull/7487))\r\n\r\n### 📖 Documentation\r\n\r\n  - Add note about `useFetch` auto generated key ([#7044](https://github.com/nuxt/framework/pull/7044))\r\n  - **api:** Enhance `useHead` composable ([#7072](https://github.com/nuxt/framework/pull/7072))\r\n  - Add note about fetching data on initial load ([#7120](https://github.com/nuxt/framework/pull/7120))\r\n  - Document `external` option of `navigateTo` ([#7188](https://github.com/nuxt/framework/pull/7188))\r\n  - **guide:** Add `.client` and `.server` components ([#7084](https://github.com/nuxt/framework/pull/7084))\r\n  - Fix markdown file name ([#7231](https://github.com/nuxt/framework/pull/7231))\r\n  - **api:** Navigate to first item in list ([#7232](https://github.com/nuxt/framework/pull/7232))\r\n  - Extend description of server handlers ([#7187](https://github.com/nuxt/framework/pull/7187))\r\n  - **api:** Add example for fetch interceptors ([#7180](https://github.com/nuxt/framework/pull/7180))\r\n  - **deploy:** Add node cluster mode ([#7089](https://github.com/nuxt/framework/pull/7089))\r\n  - **api:** Fix `useAsyncData` signature ([#7242](https://github.com/nuxt/framework/pull/7242))\r\n  - Add `app-config` example ([#7247](https://github.com/nuxt/framework/pull/7247))\r\n  - Fix typo ([#7262](https://github.com/nuxt/framework/pull/7262))\r\n  - Fix typo in url ([#7272](https://github.com/nuxt/framework/pull/7272))\r\n  - Rename `AppConfig` to `AppConfigInput` ([#7293](https://github.com/nuxt/framework/pull/7293))\r\n  - **api:** Fix typo in use-fetch ([#7310](https://github.com/nuxt/framework/pull/7310))\r\n  - **api:** Add `nuxi prepare` command ([#7349](https://github.com/nuxt/framework/pull/7349))\r\n  - **head:** Enhance usehead and fix broken links ([#7364](https://github.com/nuxt/framework/pull/7364))\r\n  - Remove duplicate word ([#7387](https://github.com/nuxt/framework/pull/7387))\r\n  - **api:** Add `useRuntimeConfig` page ([#7406](https://github.com/nuxt/framework/pull/7406))\r\n  - Fix typo ([#7437](https://github.com/nuxt/framework/pull/7437))\r\n  - Update structure ([#7047](https://github.com/nuxt/framework/pull/7047))\r\n  - Update name of the generated `imports.d.ts` file ([#7474](https://github.com/nuxt/framework/pull/7474))\r\n  - **getting-started:** Add routing page ([#7495](https://github.com/nuxt/framework/pull/7495))\r\n  - Update codesandbox link ([#7499](https://github.com/nuxt/framework/pull/7499))\r\n  - **schema:** Change `srcDir` example to `src/` ([#7503](https://github.com/nuxt/framework/pull/7503))\r\n\r\n### 🏡 Chore\r\n\r\n  - Update CodeSandbox links ([#7318](https://github.com/nuxt/framework/pull/7318))\r\n\r\n### 📦 Build\r\n\r\n  - **cli:** Add `node` to export conditions ([0cc49e2a](https://github.com/nuxt/framework/commit/0cc49e2a))\r\n\r\n### ✅ Tests\r\n\r\n  - Use semantic `runIf` and `skipIf` helpers ([#7312](https://github.com/nuxt/framework/pull/7312))\r\n  - **nuxt:** Add tests for import protection plugin ([#7416](https://github.com/nuxt/framework/pull/7416))\r\n\r\n### 🤖 CI\r\n\r\n  - Crawl docs site for new deployments to track broken links ([#7473](https://github.com/nuxt/framework/pull/7473))\r\n\r\n### ❤️  Contributors\r\n\r\n- Adewale Abati\r\n- Alex Kozack\r\n- Alex Liu\r\n- Alexander Lichter\r\n- AndreyYolkin\r\n- Anthony Fu\r\n- Clément Ollivier\r\n- Corey Richardson\r\n- Damian Głowala\r\n- Daniel Roe\r\n- Harlan Wilton\r\n- HomWang\r\n- Julien Huang\r\n- Krutie Patel\r\n- Kévin Schnekenburger\r\n- Leon Si\r\n- Mahdi Boomeri\r\n- Mastercuber\r\n- Pooya Parsa\r\n- Ricardo Gobbo De Souza\r\n- Sébastien Chopin\r\n- Tobias Diez\r\n- Tobias SN\r\n- Vasily Stepanov\r\n- Victorkwok97\r\n- Vl4dimyr\r\n","html":"<p>💬 Join the <a href=\"https://github.com/nuxt/framework/discussions/7513\">release discussion</a></p>\n<div class=\"markdown-heading\"><h2 class=\"heading-element\">🚀 How to Upgrade</h2><a id=\"user-content--how-to-upgrade\" class=\"anchor\" aria-label=\"Permalink: 🚀 How to Upgrade\" href=\"#-how-to-upgrade\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<blockquote>\n<p><strong>Note</strong>\nMake sure to recreate the lock file in the project in case of any issues after the upgrade.</p>\n</blockquote>\n<ul>\n<li>\n<strong>Automated:</strong> <code>npx nuxi@latest upgrade --force</code>\n</li>\n<li>\n<strong>Manual:</strong> Bump <code>nuxt</code> dependency to <code>3.0.0-rc.10</code> and then use <code>npx nuxi@latest cleanup</code> to cleanup any local caches</li>\n</ul>\n<div class=\"markdown-heading\"><h2 class=\"heading-element\">⭐ What is new?</h2><a id=\"user-content--what-is-new\" class=\"anchor\" aria-label=\"Permalink: ⭐ What is new?\" href=\"#-what-is-new\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<div class=\"markdown-heading\"><h3 class=\"heading-element\">Critical Styles are Inlined</h3><a id=\"user-content-critical-styles-are-inlined\" class=\"anchor\" aria-label=\"Permalink: Critical Styles are Inlined\" href=\"#critical-styles-are-inlined\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<p><a href=\"https://github.com/nuxt/framework/issues/6755\">#6755</a>, <a href=\"https://github.com/nuxt/framework/pull/7160\">#7160</a></p>\n<p>Global styles and used component styles are now automatically inlined when server-side rendering a page. This feature helps to improve the <a href=\"https://web.dev/fcp/\" rel=\"nofollow\">First Contentful Paint (FCP)</a> metric.</p>\n<p>🧪 You can disable the feature from <code>nuxt.config</code> using <code>experimental: { inlineSSRStyles: false }</code> in case of any issues.</p>\n<div class=\"markdown-heading\"><h3 class=\"heading-element\">Full Static Generation with Payload Rendering</h3><a id=\"user-content-full-static-generation-with-payload-rendering\" class=\"anchor\" aria-label=\"Permalink: Full Static Generation with Payload Rendering\" href=\"#full-static-generation-with-payload-rendering\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<p><a href=\"https://github.com/nuxt/framework/issues/6411\">#6411</a>, <a href=\"https://github.com/nuxt/framework/pull/6455\">#6455</a></p>\n<p>In Nuxt 2, we introduced an amazing feature called <a href=\"https://nuxtjs.org/announcements/going-full-static/\" rel=\"nofollow\">Full Static Generation</a>. When using <code>nuxt generate</code>, the payload of each page containing asyncData and state is extracted to a <code>.js</code> chunk and we can deploy output to any static hosting without requiring a hosted API server. This feature also introduced performance benefits to reduce page size and allow smartly prefetching payload of next pages ahead of time when using <code>nuxt generate</code> but kept limited to it.</p>\n<p>This feature is now back in Nuxt 3 but much better! Payload is not only extracted during prerendering phase (<code>nuxt generate</code>) but also can be rendered on demand by simply appending <code>/_payload.js</code> to the end of any URL. This made implementation much simpler and also unlocks future development to enable payload rendering for <strong>hybrid</strong> static server and <strong>incremental</strong> generated pages. Followup <a href=\"https://github.com/nuxt/framework/issues/6411\">#6411</a> for the roadmap.</p>\n<div class=\"markdown-heading\"><h3 class=\"heading-element\">Link Prefetching</h3><a id=\"user-content-link-prefetching\" class=\"anchor\" aria-label=\"Permalink: Link Prefetching\" href=\"#link-prefetching\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<p><a href=\"https://github.com/nuxt/framework/pull/4329\">#4329</a></p>\n<p>Another goodie ported from Nuxt 2, is automatically prefetching the next pages when a <code>&lt;NuxtLink&gt;</code> is in the viewport.</p>\n<p>This feature is integrated with vue-router to prefetch components of the next route and also payload extraction to prefetch the payload of the next pages ahead of time! You can also hook into <code>link:prefetch</code> to do more prefetches.</p>\n<div class=\"markdown-heading\"><h3 class=\"heading-element\">Better Workspace Support</h3><a id=\"user-content-better-workspace-support\" class=\"anchor\" aria-label=\"Permalink: Better Workspace Support\" href=\"#better-workspace-support\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<p><a href=\"https://github.com/unjs/pkg-types/pull/34\">unjs/pkg-types#34</a>, <a href=\"https://github.com/nuxt/framework/pull/7439\">#7439</a></p>\n<p>Nuxt has several configurations for directories including <code>rootDir</code> where <code>nuxt.config</code>, <code>package.json</code>, etc is, and <code>srcDir</code> which is the same as <code>rootDir</code> by default but can be customized to move project code such as <code>pages/</code> to the <code>src/</code> directory. With <a href=\"https://monorepo.tools/\" rel=\"nofollow\">Monorepo</a> becoming more popular, it became clear we need another new option to act smarter in a monorepo.</p>\n<p>We have introduced a new <code>workspaceDir</code> configuration. It is <strong>automatically detected</strong> from rootDir using different heuristics (<a href=\"https://github.com/unjs/pkg-types#findworkspacedir\">how?</a>). This option is used to extend the search path for <code>node_modules</code> via <a href=\"https://github.com/nuxt/framework/pull/7439\">#7439</a> but we will keep spreading its use in other places.</p>\n<p>🧪 You can manually set <code>workspaceDir</code> from <code>nuxt.config</code> in case of any issues.</p>\n<div class=\"markdown-heading\"><h3 class=\"heading-element\">\n<code>defineNuxtConfig</code> is Auto Imported</h3><a id=\"user-content-definenuxtconfig-is-auto-imported\" class=\"anchor\" aria-label=\"Permalink: defineNuxtConfig is Auto Imported\" href=\"#definenuxtconfig-is-auto-imported\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<p><a href=\"https://github.com/nuxt/framework/issues/7267\">#7267</a>, <a href=\"https://github.com/nuxt/framework/pull/7485\">#7485</a>, <a href=\"https://github.com/nuxt/framework/pull/7497\">#7497</a></p>\n<p>Nuxt uses <a href=\"https://github.com/unjs/jiti\">unjs/jiti</a> in order to support typescript and ESM syntax for <code>nuxt.config</code>.\nWhen importing <code>{ defineNuxtConfig } from 'nuxt'</code> in Nuxt 3, it causes the whole nuxt package to be loaded. It was making startup time slower.</p>\n<p>We have introduced a new <code>nuxt/config</code> subpath export that only exports <code>defineNuxtConfig</code> for type support but you don't even need this anymore! Just remove import and enjoy shorter syntax!</p>\n<div class=\"highlight highlight-source-diff\"><pre><span class=\"pl-md\"><span class=\"pl-md\">-</span>- import { defineNuxtConfig } from 'nuxt'</span>\nexport default defineNuxtConfig({\n})</pre></div>\n<div class=\"markdown-heading\"><h3 class=\"heading-element\">More Powerful <code>nuxt init</code>\n</h3><a id=\"user-content-more-powerful-nuxt-init\" class=\"anchor\" aria-label=\"Permalink: More Powerful nuxt init\" href=\"#more-powerful-nuxt-init\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<p>We have switched to <a href=\"https://github.com/unjs/giget\">unjs/giget</a> for a much more powerful template init engine.</p>\n<p>Normally <code>nuxi init</code> command should work as it was before. If you were using <code>nuxt init org/repo</code> to clone the 3rd party GitHub repository, you should use <code>nuxi init gh:org/repo</code> now.</p>\n<div class=\"markdown-heading\"><h3 class=\"heading-element\">Experimental Zero-Client-JS Mode</h3><a id=\"user-content-experimental-zero-client-js-mode\" class=\"anchor\" aria-label=\"Permalink: Experimental Zero-Client-JS Mode\" href=\"#experimental-zero-client-js-mode\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<p><a href=\"https://github.com/nuxt/framework/issues/7156\">#7156</a>, <a href=\"https://github.com/nuxt/framework/pull/7248\">#7248</a></p>\n<p>This new experimental flag allows turning off all Nuxt client js code when server-side rendering a page.</p>\n<p>Using this feature is advisable for the very small minority of sites that would not benefit from client-side JS.</p>\n<p>You can try this feature by setting <code>experimental: { noScripts: true }</code> and let us know what you think!</p>\n<hr>\n<div class=\"markdown-heading\"><h2 class=\"heading-element\">Changelog</h2><a id=\"user-content-changelog\" class=\"anchor\" aria-label=\"Permalink: Changelog\" href=\"#changelog\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<p>(<a href=\"https://github.com/nuxt/framework/compare/v3.0.0-rc.9...v3.0.0-rc.10\">see all commits</a>)</p>\n<div class=\"markdown-heading\"><h3 class=\"heading-element\">🚀 Enhancements</h3><a id=\"user-content--enhancements\" class=\"anchor\" aria-label=\"Permalink: 🚀 Enhancements\" href=\"#-enhancements\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<ul>\n<li>\n<strong>nuxt, vite:</strong> Inline global and component styles in server response (<a href=\"https://github.com/nuxt/framework/pull/7160\">#7160</a>)</li>\n<li>\n<strong>nuxt:</strong> Custom <code>history</code> and <code>routes</code> for <code>app/router.options.ts</code> (<a href=\"https://github.com/nuxt/framework/pull/7129\">#7129</a>)</li>\n<li>\n<strong>nuxt:</strong> Router with hash mode (<a href=\"https://github.com/nuxt/framework/pull/6980\">#6980</a>)</li>\n<li>\n<strong>nuxt:</strong> Allow extending routes with custom alias (<a href=\"https://github.com/nuxt/framework/pull/7074\">#7074</a>)</li>\n<li>\n<strong>test-utils:</strong> Add <code>mockFn</code> and <code>mockLogger</code> utils (<a href=\"https://github.com/nuxt/framework/pull/6235\">#6235</a>)</li>\n<li>\n<strong>nuxt:</strong> Support experimental flag to render no client-side js (<a href=\"https://github.com/nuxt/framework/pull/7248\">#7248</a>)</li>\n<li>\n<strong>kit:</strong> Add <code>addImportsSources</code> utility (<a href=\"https://github.com/nuxt/framework/pull/7270\">#7270</a>)</li>\n<li>\n<strong>nuxt:</strong> Add <code>immediate</code> option for <code>useAsyncData</code> and <code>useFetch</code> (<a href=\"https://github.com/nuxt/framework/pull/5500\">#5500</a>)</li>\n<li>\n<strong>nuxt:</strong> Add <code>clearNuxtData</code> (<a href=\"https://github.com/nuxt/framework/pull/5227\">#5227</a>)</li>\n<li>Allow client-side sourcemaps in production (<a href=\"https://github.com/nuxt/framework/pull/7313\">#7313</a>)</li>\n<li>\n<strong>nuxt:</strong> Filter support for <code>clearNuxtData</code> (<a href=\"https://github.com/nuxt/framework/pull/7323\">#7323</a>)</li>\n<li>\n<strong>cli:</strong> Switch to <code>unjs/giget</code> for <code>nuxi init</code> (<a href=\"https://github.com/nuxt/framework/pull/7361\">#7361</a>)</li>\n<li>\n<strong>cli:</strong> <g-emoji class=\"g-emoji\" alias=\"warning\">⚠️</g-emoji>  Use giget 0.1x with template registry for <code>nuxi init</code> (<a href=\"https://github.com/nuxt/framework/pull/7404\">#7404</a>)</li>\n<li>\n<strong>nuxt:</strong> Payload rendering support (<a href=\"https://github.com/nuxt/framework/pull/6455\">#6455</a>)</li>\n<li>\n<strong>nuxt:</strong> Allow exposing type augmentations from extends layers (<a href=\"https://github.com/nuxt/framework/pull/7442\">#7442</a>)</li>\n<li>\n<strong>nuxt:</strong> Add <code>workspaceDir</code> option and add it to <code>modulesDir</code> (<a href=\"https://github.com/nuxt/framework/pull/7439\">#7439</a>)</li>\n<li>\n<strong>nuxt:</strong> Support prefetching <code>&lt;nuxt-link&gt;</code> (<a href=\"https://github.com/nuxt/framework/pull/4329\">#4329</a>)</li>\n<li>\n<strong>nuxt:</strong> Allow passing transition &amp; keepalive props to <code>&lt;NuxtPage&gt;</code> (<a href=\"https://github.com/nuxt/framework/pull/7492\">#7492</a>)</li>\n<li>\n<strong>nuxt, kit:</strong> Auto import <code>defineNuxtConfig</code> (<a href=\"https://github.com/nuxt/framework/pull/7497\">#7497</a>)</li>\n<li>\n<strong>nuxt:</strong> Generate spa fallback for <code>nuxt generate</code> (<a href=\"https://github.com/nuxt/framework/pull/7507\">#7507</a>)</li>\n</ul>\n<div class=\"markdown-heading\"><h3 class=\"heading-element\">🔥 Performance</h3><a id=\"user-content--performance\" class=\"anchor\" aria-label=\"Permalink: 🔥 Performance\" href=\"#-performance\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<ul>\n<li>\n<strong>nuxt:</strong> Cache <code>createClientOnly</code> wrapper using weakmap (<a href=\"https://github.com/nuxt/framework/pull/7297\">#7297</a>)</li>\n<li>\n<strong>vite:</strong> Remove duplicate css links from rendered page when inlined (<a href=\"https://github.com/nuxt/framework/pull/7264\">#7264</a>)</li>\n<li>\n<strong>nuxt:</strong> Only inject preload helper when webpack is used (<a href=\"https://github.com/nuxt/framework/pull/7460\">#7460</a>)</li>\n<li>\n<strong>nuxt:</strong> Import <code>defineNuxtConfig</code> from <code>nuxt/config</code> (<a href=\"https://github.com/nuxt/framework/pull/7485\">#7485</a>)</li>\n<li>Enable <code>treeshakeClientOnly</code> flag by default (<a href=\"https://github.com/nuxt/framework/pull/7484\">#7484</a>)</li>\n</ul>\n<div class=\"markdown-heading\"><h3 class=\"heading-element\">🩹 Fixes</h3><a id=\"user-content--fixes\" class=\"anchor\" aria-label=\"Permalink: 🩹 Fixes\" href=\"#-fixes\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<ul>\n<li>\n<strong>nuxt:</strong> Update default redirect code of <code>navigateTo</code> to <code>302 Found</code> (<a href=\"https://github.com/nuxt/framework/pull/7189\">#7189</a>)</li>\n<li>\n<strong>head:</strong> Case <code>http-equiv</code> correctly (<a href=\"https://github.com/nuxt/framework/pull/7190\">#7190</a>)</li>\n<li>\n<strong>kit, nuxi:</strong> Semver regexp to support <code>nuxt-edge</code> current releases (bridge) (<a href=\"https://github.com/nuxt/framework/pull/7193\">#7193</a>)</li>\n<li>\n<strong>vite:</strong> Use baseURL + assetsDir as base in dev mode (<a href=\"https://github.com/nuxt/framework/pull/7234\">#7234</a>)</li>\n<li>\n<strong>vite:</strong> Pass ssr condition to <code>getModuleByUrl</code> (<a href=\"https://github.com/nuxt/framework/pull/7260\">#7260</a>)</li>\n<li>\n<strong>nuxt:</strong> Import and wrap client-only components once (<a href=\"https://github.com/nuxt/framework/pull/7245\">#7245</a>)</li>\n<li>\n<strong>cli:</strong> Pass value of <code>https</code> through to vite-node (<a href=\"https://github.com/nuxt/framework/pull/7271\">#7271</a>)</li>\n<li>\n<strong>nuxt:</strong> Don't override payload error if it is present (<a href=\"https://github.com/nuxt/framework/pull/7290\">#7290</a>)</li>\n<li>\n<strong>nuxt:</strong> Don't try to set cookie after redirect (<a href=\"https://github.com/nuxt/framework/pull/7288\">#7288</a>)</li>\n<li>\n<strong>webpack:</strong> Promisify webpack dev/hot handlers using <code>h3.promisifyHandler</code> (<a href=\"https://github.com/nuxt/framework/pull/7275\">#7275</a>)</li>\n<li>\n<strong>schema:</strong> Disallow setting vite server properties (<a href=\"https://github.com/nuxt/framework/pull/7317\">#7317</a>)</li>\n<li>\n<strong>schema:</strong> Mark vite server as optional (<a href=\"https://github.com/nuxt/framework/pull/7327\">#7327</a>)</li>\n<li>\n<strong>nuxt:</strong> Allow <code>abortMiddleware</code> to receive a nuxt error or error options (<a href=\"https://github.com/nuxt/framework/pull/7335\">#7335</a>)</li>\n<li>\n<strong>webpack:</strong> Don't parse styles for composable keys (<a href=\"https://github.com/nuxt/framework/pull/7333\">#7333</a>)</li>\n<li>\n<strong>vite:</strong> Allow overriding vite sourcemap (<a href=\"https://github.com/nuxt/framework/pull/7342\">#7342</a>)</li>\n<li>\n<strong>schema:</strong> Resolve <code>ssr</code> (<a href=\"https://github.com/nuxt/framework/pull/7359\">#7359</a>)</li>\n<li>\n<strong>kit:</strong> Add default config layer without <code>nuxt.config</code> file (<a href=\"https://github.com/nuxt/framework/pull/7358\">#7358</a>)</li>\n<li>\n<strong>vite:</strong> Update render if it is invalidated (<a href=\"https://github.com/nuxt/framework/pull/7347\">#7347</a>)</li>\n<li>\n<strong>vite:</strong> Warmup improvements (<a href=\"https://github.com/nuxt/framework/pull/7377\">#7377</a>)</li>\n<li>\n<strong>cli:</strong> Don't include an array of paths within an array (<a href=\"https://github.com/nuxt/framework/pull/7378\">#7378</a>)</li>\n<li>\n<strong>vite:</strong> Write dev manifest before spa build (<a href=\"https://github.com/nuxt/framework/pull/7380\">#7380</a>)</li>\n<li>\n<strong>nuxt:</strong> De-default layout/component imports (<a href=\"https://github.com/nuxt/framework/pull/7389\">#7389</a>)</li>\n<li>\n<strong>nuxt:</strong> Always inline entry styles (<a href=\"https://github.com/nuxt/framework/pull/7386\">#7386</a>)</li>\n<li>\n<strong>nuxt:</strong> Do not apply import protection to top-level resolution (<a href=\"https://github.com/nuxt/framework/pull/7344\">#7344</a>)</li>\n<li>\n<strong>nuxt:</strong> Use more specific <code>FetchError</code> for <code>useFetch</code> errors (<a href=\"https://github.com/nuxt/framework/pull/7435\">#7435</a>)</li>\n<li>\n<strong>vite:</strong> Use same asset filenames between server and client (<a href=\"https://github.com/nuxt/framework/pull/7436\">#7436</a>)</li>\n<li>\n<strong>nuxt:</strong> Augment GlobalComponents from <code>@vue/runtime-core</code> (<a href=\"https://github.com/nuxt/framework/pull/7448\">#7448</a>)</li>\n<li>\n<strong>vite:</strong> Don't fail builds for virtual modules that don't support inlining (<a href=\"https://github.com/nuxt/framework/pull/7440\">#7440</a>)</li>\n<li>\n<strong>nuxt:</strong> Only delete assets when building (<a href=\"https://github.com/nuxt/framework/pull/7486\">#7486</a>)</li>\n<li>\n<strong>vite:</strong> Show formatted vite-node errors (<a href=\"https://github.com/nuxt/framework/pull/7509\">#7509</a>)</li>\n<li>\n<strong>vite:</strong> Disable server warmup with <code>vite-node</code> (<a href=\"https://github.com/nuxt/framework/pull/7512\">#7512</a>)</li>\n</ul>\n<div class=\"markdown-heading\"><h3 class=\"heading-element\">💅 Refactors</h3><a id=\"user-content--refactors\" class=\"anchor\" aria-label=\"Permalink: 💅 Refactors\" href=\"#-refactors\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<ul>\n<li>\n<strong>vite:</strong> Reuse resolved server entry from context (<a href=\"https://github.com/nuxt/framework/pull/7268\">#7268</a>)</li>\n<li>\n<strong>schema:</strong> Upgrade to untyped 0.5 (<a href=\"https://github.com/nuxt/framework/pull/7452\">#7452</a>)</li>\n<li>\n<strong>nuxt:</strong> Use relative imports into composables (<a href=\"https://github.com/nuxt/framework/pull/7487\">#7487</a>)</li>\n</ul>\n<div class=\"markdown-heading\"><h3 class=\"heading-element\">📖 Documentation</h3><a id=\"user-content--documentation\" class=\"anchor\" aria-label=\"Permalink: 📖 Documentation\" href=\"#-documentation\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<ul>\n<li>Add note about <code>useFetch</code> auto generated key (<a href=\"https://github.com/nuxt/framework/pull/7044\">#7044</a>)</li>\n<li>\n<strong>api:</strong> Enhance <code>useHead</code> composable (<a href=\"https://github.com/nuxt/framework/pull/7072\">#7072</a>)</li>\n<li>Add note about fetching data on initial load (<a href=\"https://github.com/nuxt/framework/pull/7120\">#7120</a>)</li>\n<li>Document <code>external</code> option of <code>navigateTo</code> (<a href=\"https://github.com/nuxt/framework/pull/7188\">#7188</a>)</li>\n<li>\n<strong>guide:</strong> Add <code>.client</code> and <code>.server</code> components (<a href=\"https://github.com/nuxt/framework/pull/7084\">#7084</a>)</li>\n<li>Fix markdown file name (<a href=\"https://github.com/nuxt/framework/pull/7231\">#7231</a>)</li>\n<li>\n<strong>api:</strong> Navigate to first item in list (<a href=\"https://github.com/nuxt/framework/pull/7232\">#7232</a>)</li>\n<li>Extend description of server handlers (<a href=\"https://github.com/nuxt/framework/pull/7187\">#7187</a>)</li>\n<li>\n<strong>api:</strong> Add example for fetch interceptors (<a href=\"https://github.com/nuxt/framework/pull/7180\">#7180</a>)</li>\n<li>\n<strong>deploy:</strong> Add node cluster mode (<a href=\"https://github.com/nuxt/framework/pull/7089\">#7089</a>)</li>\n<li>\n<strong>api:</strong> Fix <code>useAsyncData</code> signature (<a href=\"https://github.com/nuxt/framework/pull/7242\">#7242</a>)</li>\n<li>Add <code>app-config</code> example (<a href=\"https://github.com/nuxt/framework/pull/7247\">#7247</a>)</li>\n<li>Fix typo (<a href=\"https://github.com/nuxt/framework/pull/7262\">#7262</a>)</li>\n<li>Fix typo in url (<a href=\"https://github.com/nuxt/framework/pull/7272\">#7272</a>)</li>\n<li>Rename <code>AppConfig</code> to <code>AppConfigInput</code> (<a href=\"https://github.com/nuxt/framework/pull/7293\">#7293</a>)</li>\n<li>\n<strong>api:</strong> Fix typo in use-fetch (<a href=\"https://github.com/nuxt/framework/pull/7310\">#7310</a>)</li>\n<li>\n<strong>api:</strong> Add <code>nuxi prepare</code> command (<a href=\"https://github.com/nuxt/framework/pull/7349\">#7349</a>)</li>\n<li>\n<strong>head:</strong> Enhance usehead and fix broken links (<a href=\"https://github.com/nuxt/framework/pull/7364\">#7364</a>)</li>\n<li>Remove duplicate word (<a href=\"https://github.com/nuxt/framework/pull/7387\">#7387</a>)</li>\n<li>\n<strong>api:</strong> Add <code>useRuntimeConfig</code> page (<a href=\"https://github.com/nuxt/framework/pull/7406\">#7406</a>)</li>\n<li>Fix typo (<a href=\"https://github.com/nuxt/framework/pull/7437\">#7437</a>)</li>\n<li>Update structure (<a href=\"https://github.com/nuxt/framework/pull/7047\">#7047</a>)</li>\n<li>Update name of the generated <code>imports.d.ts</code> file (<a href=\"https://github.com/nuxt/framework/pull/7474\">#7474</a>)</li>\n<li>\n<strong>getting-started:</strong> Add routing page (<a href=\"https://github.com/nuxt/framework/pull/7495\">#7495</a>)</li>\n<li>Update codesandbox link (<a href=\"https://github.com/nuxt/framework/pull/7499\">#7499</a>)</li>\n<li>\n<strong>schema:</strong> Change <code>srcDir</code> example to <code>src/</code> (<a href=\"https://github.com/nuxt/framework/pull/7503\">#7503</a>)</li>\n</ul>\n<div class=\"markdown-heading\"><h3 class=\"heading-element\">🏡 Chore</h3><a id=\"user-content--chore\" class=\"anchor\" aria-label=\"Permalink: 🏡 Chore\" href=\"#-chore\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<ul>\n<li>Update CodeSandbox links (<a href=\"https://github.com/nuxt/framework/pull/7318\">#7318</a>)</li>\n</ul>\n<div class=\"markdown-heading\"><h3 class=\"heading-element\">📦 Build</h3><a id=\"user-content--build\" class=\"anchor\" aria-label=\"Permalink: 📦 Build\" href=\"#-build\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<ul>\n<li>\n<strong>cli:</strong> Add <code>node</code> to export conditions (<a href=\"https://github.com/nuxt/framework/commit/0cc49e2a\">0cc49e2a</a>)</li>\n</ul>\n<div class=\"markdown-heading\"><h3 class=\"heading-element\">✅ Tests</h3><a id=\"user-content--tests\" class=\"anchor\" aria-label=\"Permalink: ✅ Tests\" href=\"#-tests\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<ul>\n<li>Use semantic <code>runIf</code> and <code>skipIf</code> helpers (<a href=\"https://github.com/nuxt/framework/pull/7312\">#7312</a>)</li>\n<li>\n<strong>nuxt:</strong> Add tests for import protection plugin (<a href=\"https://github.com/nuxt/framework/pull/7416\">#7416</a>)</li>\n</ul>\n<div class=\"markdown-heading\"><h3 class=\"heading-element\">🤖 CI</h3><a id=\"user-content--ci\" class=\"anchor\" aria-label=\"Permalink: 🤖 CI\" href=\"#-ci\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<ul>\n<li>Crawl docs site for new deployments to track broken links (<a href=\"https://github.com/nuxt/framework/pull/7473\">#7473</a>)</li>\n</ul>\n<div class=\"markdown-heading\"><h3 class=\"heading-element\">❤️  Contributors</h3><a id=\"user-content-️--contributors\" class=\"anchor\" aria-label=\"Permalink: ❤️  Contributors\" href=\"#️--contributors\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<ul>\n<li>Adewale Abati</li>\n<li>Alex Kozack</li>\n<li>Alex Liu</li>\n<li>Alexander Lichter</li>\n<li>AndreyYolkin</li>\n<li>Anthony Fu</li>\n<li>Clément Ollivier</li>\n<li>Corey Richardson</li>\n<li>Damian Głowala</li>\n<li>Daniel Roe</li>\n<li>Harlan Wilton</li>\n<li>HomWang</li>\n<li>Julien Huang</li>\n<li>Krutie Patel</li>\n<li>Kévin Schnekenburger</li>\n<li>Leon Si</li>\n<li>Mahdi Boomeri</li>\n<li>Mastercuber</li>\n<li>Pooya Parsa</li>\n<li>Ricardo Gobbo De Souza</li>\n<li>Sébastien Chopin</li>\n<li>Tobias Diez</li>\n<li>Tobias SN</li>\n<li>Vasily Stepanov</li>\n<li>Victorkwok97</li>\n<li>Vl4dimyr</li>\n</ul>\n","assets":[]},{"id":76201327,"tag":"v3.0.0-rc.9","author":"pi0","name":"v3.0.0-rc.9","draft":false,"prerelease":false,"createdAt":"2022-09-03T10:36:47Z","publishedAt":"2022-09-03T10:44:37Z","markdown":"💬 Join the [release discussion](https://github.com/nuxt/framework/discussions/7186)\r\n\r\n## Highlights \r\n\r\n- ✅ `app.config.ts` with HMR and Reactivity support (see [documentation](https://v3.nuxtjs.org/guide/features/app-config) and [example](https://stackblitz.com/github/nuxt/framework/tree/main/examples/app-config?file=app.vue,app.config.ts))\r\n- ✅ Vite-Node enabled by default ([#6217](https://github.com/nuxt/framework/pull/6217))\r\n- ✅ Updated to [nitropack@0.5.x](https://github.com/unjs/nitro/releases/tag/v0.5.0)\r\n- ⚠️ `autoImports` option and hooks is deprecated and renamed to `imports` ([#6864](https://github.com/nuxt/framework/pull/6864))  ([#7158](https://github.com/nuxt/framework/pull/7158))\r\n- ⚠️ Vue dependency is now externalized ([#6868](https://github.com/nuxt/framework/pull/6868))\r\n- ⚠️  Handle prerelease constraint ([#7116](https://github.com/nuxt/framework/pull/7116))\r\n  - 👉 If you see an error like `Nuxt version ^3.0.0 is required but currently using 3.0.0-rc.9`, please contact the module author.\r\n  \r\n# Changelog\r\n\r\n([all commits](https://github.com/nuxt/framework/compare/v3.0.0-rc.8...v3.0.0-rc.9))\r\n\r\n### 🚀 Enhancements\r\n\r\n  - **webpack, vite:** Default to `.js` extension for client ([#6505](https://github.com/nuxt/framework/pull/6505))\r\n  - **schema, vite:** ⚠️  Enable `vite-node` by default ([#6217](https://github.com/nuxt/framework/pull/6217))\r\n  - **vite:** Allow disabling entry warmup ([#6647](https://github.com/nuxt/framework/pull/6647))\r\n  - **nuxt:** Exclude page chunks from being prefetched ([#6662](https://github.com/nuxt/framework/pull/6662))\r\n  - **cli:** Auto cleanup with project manifest changes ([#6672](https://github.com/nuxt/framework/pull/6672))\r\n  - **nuxt:** `app.config` with HMR and reactivity support ([#6333](https://github.com/nuxt/framework/pull/6333))\r\n  - **nuxt:** Allow `getRouteFromPath` to use objects ([#5900](https://github.com/nuxt/framework/pull/5900))\r\n  - **nuxt:** Add warning in dev mode if layouts/pages do not have a single root node ([#5469](https://github.com/nuxt/framework/pull/5469))\r\n  - **nuxt:** Config options for default keepalive, page & layout transitions ([#5859](https://github.com/nuxt/framework/pull/5859))\r\n  - **nuxt:** Allow programmatically prefetching global components ([#6661](https://github.com/nuxt/framework/pull/6661))\r\n  - **cli:** Support mode flags for `add` command ([#3921](https://github.com/nuxt/framework/pull/3921))\r\n  - **nuxt:** `imports.autoImport` option to disable auto-imports ([#6768](https://github.com/nuxt/framework/pull/6768))\r\n  - **nuxt:** `navigateTo` supports external redirects ([#5022](https://github.com/nuxt/framework/pull/5022))\r\n  - **nuxt:** `app.config` improvements ([#6905](https://github.com/nuxt/framework/pull/6905))\r\n  - **nuxt:** Add `setPageLayout` utility ([#6826](https://github.com/nuxt/framework/pull/6826), [#7075](https://github.com/nuxt/framework/pull/7075))\r\n  - **cli:** Display nuxt and nitro versions for dev and build commands ([#7118](https://github.com/nuxt/framework/pull/7118))\r\n  - **kit, schema:** Allow extending with `theme` config ([#7131](https://github.com/nuxt/framework/pull/7131))\r\n  - **nuxt:** ⚠️  Rename `autoImports` to `imports` ([#6864](https://github.com/nuxt/framework/pull/6864))\r\n  - **kit, nuxt:** Improve `autoImports` deprecation dx ([#7158](https://github.com/nuxt/framework/pull/7158))\r\n  - **nuxt:** Pass and format vite-node build errors ([#6683](https://github.com/nuxt/framework/pull/6683))\r\n\r\n### 🔥 Performance\r\n\r\n  - **nuxt:** Tree-shake asyncData client logic from server ([#7056](https://github.com/nuxt/framework/pull/7056))\r\n  - **nuxt:** Don't prefetch all global components ([#7069](https://github.com/nuxt/framework/pull/7069))\r\n\r\n### 🩹 Fixes\r\n\r\n  - **nuxt:** Remove stray commas in component templates ([#6580](https://github.com/nuxt/framework/pull/6580))\r\n  - **cli:** Update `server.port` and `server.host` with listener info ([#6595](https://github.com/nuxt/framework/pull/6595))\r\n  - **nuxt:** Add `#components` alias to tsconfig ([#6634](https://github.com/nuxt/framework/pull/6634))\r\n  - **vite:** Pass relative url as default base ([#6637](https://github.com/nuxt/framework/pull/6637))\r\n  - **nuxt:** Don't set asyncData to existing payload on CSR if `initialCache` is disabled ([#6640](https://github.com/nuxt/framework/pull/6640))\r\n  - **vite:** Warmup server entries with `ssr` condition ([#6649](https://github.com/nuxt/framework/pull/6649))\r\n  - **nuxt:** Include tag attrs for non self-closing tags in tree-shake regex ([#6675](https://github.com/nuxt/framework/pull/6675))\r\n  - **nuxt:** Fallback to static error page on server error ([#6697](https://github.com/nuxt/framework/pull/6697))\r\n  - **cli:** Ensure `nuxi upgrade` runs in rootDir ([#6707](https://github.com/nuxt/framework/pull/6707))\r\n  - **cli:** Properly detect hash and tag for upgrade changelog ([#6708](https://github.com/nuxt/framework/pull/6708))\r\n  - **nuxt:** Use `vue-devtools-stub` to mock `@vue/devtools-api` for both cjs + esm ([#6713](https://github.com/nuxt/framework/pull/6713))\r\n  - **nuxt:** Pass params to client-only slot ([#6584](https://github.com/nuxt/framework/pull/6584))\r\n  - **vite:** Improve `vite-node` module invalidation ([#6736](https://github.com/nuxt/framework/pull/6736))\r\n  - **vite:** Dedupe `vue` in client bundle ([#6735](https://github.com/nuxt/framework/pull/6735))\r\n  - **nuxt:** Ensure component helper methods do not create side-effects ([#6789](https://github.com/nuxt/framework/pull/6789))\r\n  - **nuxt:** Use deep assignment for app.config hmr ([#6788](https://github.com/nuxt/framework/pull/6788))\r\n  - **nuxt:** Throw hard error on initial spa load if aborted ([#6857](https://github.com/nuxt/framework/pull/6857))\r\n  - **nuxt:** Pass analyze options through to nitro ([#6871](https://github.com/nuxt/framework/pull/6871))\r\n  - **cli:** Build all types on typecheck command ([#5437](https://github.com/nuxt/framework/pull/5437))\r\n  - **nuxt:** Lazy composables shouldn't block setup in `ssr: false` ([#6901](https://github.com/nuxt/framework/pull/6901))\r\n  - **vite:** Remove client `manifest.json` from public dir ([#7021](https://github.com/nuxt/framework/pull/7021))\r\n  - **kit:** Sort aliases before resolving ([#7018](https://github.com/nuxt/framework/pull/7018))\r\n  - **nuxt:** Use shared state for asyncData ([#7055](https://github.com/nuxt/framework/pull/7055))\r\n  - **vite:** Sanitize client asset chunk names ([#7067](https://github.com/nuxt/framework/pull/7067))\r\n  - **schema:** Sync types of vite v3.x ([#7104](https://github.com/nuxt/framework/pull/7104))\r\n  - **kit:** ⚠️  Handle prerelease constraint ([#7116](https://github.com/nuxt/framework/pull/7116))\r\n\r\n### 💅 Refactors\r\n\r\n  - **nuxt:** Enable strict type checking ([#6368](https://github.com/nuxt/framework/pull/6368))\r\n  - **vite:** Enable strict type checking ([#6616](https://github.com/nuxt/framework/pull/6616))\r\n  - **nuxt, kit:** Improve type strictness ([#6685](https://github.com/nuxt/framework/pull/6685))\r\n  - Enable strict type checking everywhere ([#6943](https://github.com/nuxt/framework/pull/6943))\r\n  - Apply lints from `@nuxtjs/eslint-config-typescript` v11 ([#7114](https://github.com/nuxt/framework/pull/7114))\r\n  - **nuxt:** Remove unused `meta:register` hook ([#7130](https://github.com/nuxt/framework/pull/7130))\r\n\r\n### 📖 Documentation\r\n\r\n  - Ensure consistent casing of section headers ([#6578](https://github.com/nuxt/framework/pull/6578))\r\n  - **components:** Use `fallbackTag` in `ClientOnly` examples ([#6587](https://github.com/nuxt/framework/pull/6587))\r\n  - Global style imports example ([#6490](https://github.com/nuxt/framework/pull/6490))\r\n  - **composables:** Add more examples for `autoImports` ([#6615](https://github.com/nuxt/framework/pull/6615))\r\n  - **server:** Add nitro config and storage examples ([#6507](https://github.com/nuxt/framework/pull/6507))\r\n  - **data-fetching:** Fix and simplify cookie proxy example ([#5770](https://github.com/nuxt/framework/pull/5770))\r\n  - Tweaks for data fetching, server routes and composables ([#6653](https://github.com/nuxt/framework/pull/6653))\r\n  - Update links to nitro.unjs.io ([#6684](https://github.com/nuxt/framework/pull/6684))\r\n  - Make wording slightly clearer ([#6740](https://github.com/nuxt/framework/pull/6740))\r\n  - Fix typo in `defineEventHandler` example ([#6741](https://github.com/nuxt/framework/pull/6741))\r\n  - **api:** Add `<NuxtWelcome />` component docs ([#6745](https://github.com/nuxt/framework/pull/6745))\r\n  - Use updated h3 utils ([#6818](https://github.com/nuxt/framework/pull/6818))\r\n  - **api:** Add missing kit utilities ([#6841](https://github.com/nuxt/framework/pull/6841))\r\n  - **plugins:** Add note about composable usage ([#6744](https://github.com/nuxt/framework/pull/6744))\r\n  - **api:** Add `useNuxtApp` composable ([#6786](https://github.com/nuxt/framework/pull/6786))\r\n  - **composables:** Add nested and plugin injection examples ([#6743](https://github.com/nuxt/framework/pull/6743))\r\n  - **examples:** Add jsx example ([#6870](https://github.com/nuxt/framework/pull/6870))\r\n  - **api:** Add `addRouteMiddleware` util ([#6894](https://github.com/nuxt/framework/pull/6894))\r\n  - Update stormkit link ([3ee812939](https://github.com/nuxt/framework/commit/3ee812939))\r\n  - Update link to pinia nuxt module ([#6952](https://github.com/nuxt/framework/pull/6952))\r\n  - **deploy:** Update command for csr prerendering ([#6966](https://github.com/nuxt/framework/pull/6966))\r\n  - **api:** Enhance `abortNavigation` util ([#6936](https://github.com/nuxt/framework/pull/6936))\r\n  - **api:** Add `defineNuxtRouteMiddleware` util ([#6933](https://github.com/nuxt/framework/pull/6933))\r\n  - **api:** Add `definePageMeta` util ([#6931](https://github.com/nuxt/framework/pull/6931))\r\n  - Replace backtick with apostrophe ([#7015](https://github.com/nuxt/framework/pull/7015))\r\n  - **api:** Fix the layout file extension in cli example ([#7024](https://github.com/nuxt/framework/pull/7024))\r\n  - **schema:** Update prefix for runtime config env variables ([#6999](https://github.com/nuxt/framework/pull/6999))\r\n  - Add information on how to use options api asyncData ([#7019](https://github.com/nuxt/framework/pull/7019))\r\n  - Increment directory structure numbers ([#7102](https://github.com/nuxt/framework/pull/7102))\r\n  - Add explanatory comment before universal router stubs ([#7124](https://github.com/nuxt/framework/pull/7124))\r\n\r\n### 🏡 Chore\r\n\r\n  - **ci:** Set timeout for each step ([#6923](https://github.com/nuxt/framework/pull/6923))\r\n  - **nuxt:** Fix typo ([#6971](https://github.com/nuxt/framework/pull/6971))\r\n  - Add `dev:preview` script for playground preview ([#6961](https://github.com/nuxt/framework/pull/6961))\r\n  - **repo:** Remove backtick-type in bug issue-template ([#7083](https://github.com/nuxt/framework/pull/7083))\r\n  - Bump rc version for edge versions ([#7117](https://github.com/nuxt/framework/pull/7117))\r\n  - **nuxt:** Prevent error page rendering a null error ([#7119](https://github.com/nuxt/framework/pull/7119))\r\n  - **nuxt:** Use latest `nitropack-edge` on release ([#7036](https://github.com/nuxt/framework/pull/7036))\r\n\r\n### ❤️  Contributors\r\n\r\n- 4Kazelot\r\n- Alex Kozack\r\n- Alexander Lichter\r\n- Angelo Schuler Piletti\r\n- Anthony Fu\r\n- Conrawl Rogers\r\n- Damian Głowala\r\n- Daniel Roe\r\n- Harlan Wilton\r\n- HomWang\r\n- Ilya Artamonov\r\n- Julien Huang\r\n- Krutie Patel\r\n- Lay\r\n- Lexpeartha\r\n- Louis Haftmann\r\n- Mourad EL CADI\r\n- Nils\r\n- Ohb00\r\n- Oumar Barry\r\n- Pooya Parsa\r\n- Qin Guan\r\n- Richard Schloss\r\n- Sébastien Chopin\r\n- TheColaber\r\n- Umut Aktaş\r\n- Yaël Guilloux\r\n- __Catalina\r\n\r\n","html":"<p>💬 Join the <a href=\"https://github.com/nuxt/framework/discussions/7186\">release discussion</a></p>\n<div class=\"markdown-heading\"><h2 class=\"heading-element\">Highlights</h2><a id=\"user-content-highlights\" class=\"anchor\" aria-label=\"Permalink: Highlights\" href=\"#highlights\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<ul>\n<li>✅ <code>app.config.ts</code> with HMR and Reactivity support (see <a href=\"https://v3.nuxtjs.org/guide/features/app-config\" rel=\"nofollow\">documentation</a> and <a href=\"https://stackblitz.com/github/nuxt/framework/tree/main/examples/app-config?file=app.vue,app.config.ts\" rel=\"nofollow\">example</a>)</li>\n<li>✅ Vite-Node enabled by default (<a href=\"https://github.com/nuxt/framework/pull/6217\">#6217</a>)</li>\n<li>✅ Updated to <a href=\"https://github.com/unjs/nitro/releases/tag/v0.5.0\">nitropack@0.5.x</a>\n</li>\n<li><g-emoji class=\"g-emoji\" alias=\"warning\">⚠️</g-emoji> <code>autoImports</code> option and hooks is deprecated and renamed to <code>imports</code> (<a href=\"https://github.com/nuxt/framework/pull/6864\">#6864</a>)  (<a href=\"https://github.com/nuxt/framework/pull/7158\">#7158</a>)</li>\n<li><g-emoji class=\"g-emoji\" alias=\"warning\">⚠️</g-emoji> Vue dependency is now externalized (<a href=\"https://github.com/nuxt/framework/pull/6868\">#6868</a>)</li>\n<li><g-emoji class=\"g-emoji\" alias=\"warning\">⚠️</g-emoji>  Handle prerelease constraint (<a href=\"https://github.com/nuxt/framework/pull/7116\">#7116</a>)\n<ul>\n<li>👉 If you see an error like <code>Nuxt version ^3.0.0 is required but currently using 3.0.0-rc.9</code>, please contact the module author.</li>\n</ul>\n</li>\n</ul>\n<div class=\"markdown-heading\"><h1 class=\"heading-element\">Changelog</h1><a id=\"user-content-changelog\" class=\"anchor\" aria-label=\"Permalink: Changelog\" href=\"#changelog\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<p>(<a href=\"https://github.com/nuxt/framework/compare/v3.0.0-rc.8...v3.0.0-rc.9\">all commits</a>)</p>\n<div class=\"markdown-heading\"><h3 class=\"heading-element\">🚀 Enhancements</h3><a id=\"user-content--enhancements\" class=\"anchor\" aria-label=\"Permalink: 🚀 Enhancements\" href=\"#-enhancements\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<ul>\n<li>\n<strong>webpack, vite:</strong> Default to <code>.js</code> extension for client (<a href=\"https://github.com/nuxt/framework/pull/6505\">#6505</a>)</li>\n<li>\n<strong>schema, vite:</strong> <g-emoji class=\"g-emoji\" alias=\"warning\">⚠️</g-emoji>  Enable <code>vite-node</code> by default (<a href=\"https://github.com/nuxt/framework/pull/6217\">#6217</a>)</li>\n<li>\n<strong>vite:</strong> Allow disabling entry warmup (<a href=\"https://github.com/nuxt/framework/pull/6647\">#6647</a>)</li>\n<li>\n<strong>nuxt:</strong> Exclude page chunks from being prefetched (<a href=\"https://github.com/nuxt/framework/pull/6662\">#6662</a>)</li>\n<li>\n<strong>cli:</strong> Auto cleanup with project manifest changes (<a href=\"https://github.com/nuxt/framework/pull/6672\">#6672</a>)</li>\n<li>\n<strong>nuxt:</strong> <code>app.config</code> with HMR and reactivity support (<a href=\"https://github.com/nuxt/framework/pull/6333\">#6333</a>)</li>\n<li>\n<strong>nuxt:</strong> Allow <code>getRouteFromPath</code> to use objects (<a href=\"https://github.com/nuxt/framework/pull/5900\">#5900</a>)</li>\n<li>\n<strong>nuxt:</strong> Add warning in dev mode if layouts/pages do not have a single root node (<a href=\"https://github.com/nuxt/framework/pull/5469\">#5469</a>)</li>\n<li>\n<strong>nuxt:</strong> Config options for default keepalive, page &amp; layout transitions (<a href=\"https://github.com/nuxt/framework/pull/5859\">#5859</a>)</li>\n<li>\n<strong>nuxt:</strong> Allow programmatically prefetching global components (<a href=\"https://github.com/nuxt/framework/pull/6661\">#6661</a>)</li>\n<li>\n<strong>cli:</strong> Support mode flags for <code>add</code> command (<a href=\"https://github.com/nuxt/framework/pull/3921\">#3921</a>)</li>\n<li>\n<strong>nuxt:</strong> <code>imports.autoImport</code> option to disable auto-imports (<a href=\"https://github.com/nuxt/framework/pull/6768\">#6768</a>)</li>\n<li>\n<strong>nuxt:</strong> <code>navigateTo</code> supports external redirects (<a href=\"https://github.com/nuxt/framework/pull/5022\">#5022</a>)</li>\n<li>\n<strong>nuxt:</strong> <code>app.config</code> improvements (<a href=\"https://github.com/nuxt/framework/pull/6905\">#6905</a>)</li>\n<li>\n<strong>nuxt:</strong> Add <code>setPageLayout</code> utility (<a href=\"https://github.com/nuxt/framework/pull/6826\">#6826</a>, <a href=\"https://github.com/nuxt/framework/pull/7075\">#7075</a>)</li>\n<li>\n<strong>cli:</strong> Display nuxt and nitro versions for dev and build commands (<a href=\"https://github.com/nuxt/framework/pull/7118\">#7118</a>)</li>\n<li>\n<strong>kit, schema:</strong> Allow extending with <code>theme</code> config (<a href=\"https://github.com/nuxt/framework/pull/7131\">#7131</a>)</li>\n<li>\n<strong>nuxt:</strong> <g-emoji class=\"g-emoji\" alias=\"warning\">⚠️</g-emoji>  Rename <code>autoImports</code> to <code>imports</code> (<a href=\"https://github.com/nuxt/framework/pull/6864\">#6864</a>)</li>\n<li>\n<strong>kit, nuxt:</strong> Improve <code>autoImports</code> deprecation dx (<a href=\"https://github.com/nuxt/framework/pull/7158\">#7158</a>)</li>\n<li>\n<strong>nuxt:</strong> Pass and format vite-node build errors (<a href=\"https://github.com/nuxt/framework/pull/6683\">#6683</a>)</li>\n</ul>\n<div class=\"markdown-heading\"><h3 class=\"heading-element\">🔥 Performance</h3><a id=\"user-content--performance\" class=\"anchor\" aria-label=\"Permalink: 🔥 Performance\" href=\"#-performance\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<ul>\n<li>\n<strong>nuxt:</strong> Tree-shake asyncData client logic from server (<a href=\"https://github.com/nuxt/framework/pull/7056\">#7056</a>)</li>\n<li>\n<strong>nuxt:</strong> Don't prefetch all global components (<a href=\"https://github.com/nuxt/framework/pull/7069\">#7069</a>)</li>\n</ul>\n<div class=\"markdown-heading\"><h3 class=\"heading-element\">🩹 Fixes</h3><a id=\"user-content--fixes\" class=\"anchor\" aria-label=\"Permalink: 🩹 Fixes\" href=\"#-fixes\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<ul>\n<li>\n<strong>nuxt:</strong> Remove stray commas in component templates (<a href=\"https://github.com/nuxt/framework/pull/6580\">#6580</a>)</li>\n<li>\n<strong>cli:</strong> Update <code>server.port</code> and <code>server.host</code> with listener info (<a href=\"https://github.com/nuxt/framework/pull/6595\">#6595</a>)</li>\n<li>\n<strong>nuxt:</strong> Add <code>#components</code> alias to tsconfig (<a href=\"https://github.com/nuxt/framework/pull/6634\">#6634</a>)</li>\n<li>\n<strong>vite:</strong> Pass relative url as default base (<a href=\"https://github.com/nuxt/framework/pull/6637\">#6637</a>)</li>\n<li>\n<strong>nuxt:</strong> Don't set asyncData to existing payload on CSR if <code>initialCache</code> is disabled (<a href=\"https://github.com/nuxt/framework/pull/6640\">#6640</a>)</li>\n<li>\n<strong>vite:</strong> Warmup server entries with <code>ssr</code> condition (<a href=\"https://github.com/nuxt/framework/pull/6649\">#6649</a>)</li>\n<li>\n<strong>nuxt:</strong> Include tag attrs for non self-closing tags in tree-shake regex (<a href=\"https://github.com/nuxt/framework/pull/6675\">#6675</a>)</li>\n<li>\n<strong>nuxt:</strong> Fallback to static error page on server error (<a href=\"https://github.com/nuxt/framework/pull/6697\">#6697</a>)</li>\n<li>\n<strong>cli:</strong> Ensure <code>nuxi upgrade</code> runs in rootDir (<a href=\"https://github.com/nuxt/framework/pull/6707\">#6707</a>)</li>\n<li>\n<strong>cli:</strong> Properly detect hash and tag for upgrade changelog (<a href=\"https://github.com/nuxt/framework/pull/6708\">#6708</a>)</li>\n<li>\n<strong>nuxt:</strong> Use <code>vue-devtools-stub</code> to mock <code>@vue/devtools-api</code> for both cjs + esm (<a href=\"https://github.com/nuxt/framework/pull/6713\">#6713</a>)</li>\n<li>\n<strong>nuxt:</strong> Pass params to client-only slot (<a href=\"https://github.com/nuxt/framework/pull/6584\">#6584</a>)</li>\n<li>\n<strong>vite:</strong> Improve <code>vite-node</code> module invalidation (<a href=\"https://github.com/nuxt/framework/pull/6736\">#6736</a>)</li>\n<li>\n<strong>vite:</strong> Dedupe <code>vue</code> in client bundle (<a href=\"https://github.com/nuxt/framework/pull/6735\">#6735</a>)</li>\n<li>\n<strong>nuxt:</strong> Ensure component helper methods do not create side-effects (<a href=\"https://github.com/nuxt/framework/pull/6789\">#6789</a>)</li>\n<li>\n<strong>nuxt:</strong> Use deep assignment for app.config hmr (<a href=\"https://github.com/nuxt/framework/pull/6788\">#6788</a>)</li>\n<li>\n<strong>nuxt:</strong> Throw hard error on initial spa load if aborted (<a href=\"https://github.com/nuxt/framework/pull/6857\">#6857</a>)</li>\n<li>\n<strong>nuxt:</strong> Pass analyze options through to nitro (<a href=\"https://github.com/nuxt/framework/pull/6871\">#6871</a>)</li>\n<li>\n<strong>cli:</strong> Build all types on typecheck command (<a href=\"https://github.com/nuxt/framework/pull/5437\">#5437</a>)</li>\n<li>\n<strong>nuxt:</strong> Lazy composables shouldn't block setup in <code>ssr: false</code> (<a href=\"https://github.com/nuxt/framework/pull/6901\">#6901</a>)</li>\n<li>\n<strong>vite:</strong> Remove client <code>manifest.json</code> from public dir (<a href=\"https://github.com/nuxt/framework/pull/7021\">#7021</a>)</li>\n<li>\n<strong>kit:</strong> Sort aliases before resolving (<a href=\"https://github.com/nuxt/framework/pull/7018\">#7018</a>)</li>\n<li>\n<strong>nuxt:</strong> Use shared state for asyncData (<a href=\"https://github.com/nuxt/framework/pull/7055\">#7055</a>)</li>\n<li>\n<strong>vite:</strong> Sanitize client asset chunk names (<a href=\"https://github.com/nuxt/framework/pull/7067\">#7067</a>)</li>\n<li>\n<strong>schema:</strong> Sync types of vite v3.x (<a href=\"https://github.com/nuxt/framework/pull/7104\">#7104</a>)</li>\n<li>\n<strong>kit:</strong> <g-emoji class=\"g-emoji\" alias=\"warning\">⚠️</g-emoji>  Handle prerelease constraint (<a href=\"https://github.com/nuxt/framework/pull/7116\">#7116</a>)</li>\n</ul>\n<div class=\"markdown-heading\"><h3 class=\"heading-element\">💅 Refactors</h3><a id=\"user-content--refactors\" class=\"anchor\" aria-label=\"Permalink: 💅 Refactors\" href=\"#-refactors\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<ul>\n<li>\n<strong>nuxt:</strong> Enable strict type checking (<a href=\"https://github.com/nuxt/framework/pull/6368\">#6368</a>)</li>\n<li>\n<strong>vite:</strong> Enable strict type checking (<a href=\"https://github.com/nuxt/framework/pull/6616\">#6616</a>)</li>\n<li>\n<strong>nuxt, kit:</strong> Improve type strictness (<a href=\"https://github.com/nuxt/framework/pull/6685\">#6685</a>)</li>\n<li>Enable strict type checking everywhere (<a href=\"https://github.com/nuxt/framework/pull/6943\">#6943</a>)</li>\n<li>Apply lints from <code>@nuxtjs/eslint-config-typescript</code> v11 (<a href=\"https://github.com/nuxt/framework/pull/7114\">#7114</a>)</li>\n<li>\n<strong>nuxt:</strong> Remove unused <code>meta:register</code> hook (<a href=\"https://github.com/nuxt/framework/pull/7130\">#7130</a>)</li>\n</ul>\n<div class=\"markdown-heading\"><h3 class=\"heading-element\">📖 Documentation</h3><a id=\"user-content--documentation\" class=\"anchor\" aria-label=\"Permalink: 📖 Documentation\" href=\"#-documentation\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<ul>\n<li>Ensure consistent casing of section headers (<a href=\"https://github.com/nuxt/framework/pull/6578\">#6578</a>)</li>\n<li>\n<strong>components:</strong> Use <code>fallbackTag</code> in <code>ClientOnly</code> examples (<a href=\"https://github.com/nuxt/framework/pull/6587\">#6587</a>)</li>\n<li>Global style imports example (<a href=\"https://github.com/nuxt/framework/pull/6490\">#6490</a>)</li>\n<li>\n<strong>composables:</strong> Add more examples for <code>autoImports</code> (<a href=\"https://github.com/nuxt/framework/pull/6615\">#6615</a>)</li>\n<li>\n<strong>server:</strong> Add nitro config and storage examples (<a href=\"https://github.com/nuxt/framework/pull/6507\">#6507</a>)</li>\n<li>\n<strong>data-fetching:</strong> Fix and simplify cookie proxy example (<a href=\"https://github.com/nuxt/framework/pull/5770\">#5770</a>)</li>\n<li>Tweaks for data fetching, server routes and composables (<a href=\"https://github.com/nuxt/framework/pull/6653\">#6653</a>)</li>\n<li>Update links to nitro.unjs.io (<a href=\"https://github.com/nuxt/framework/pull/6684\">#6684</a>)</li>\n<li>Make wording slightly clearer (<a href=\"https://github.com/nuxt/framework/pull/6740\">#6740</a>)</li>\n<li>Fix typo in <code>defineEventHandler</code> example (<a href=\"https://github.com/nuxt/framework/pull/6741\">#6741</a>)</li>\n<li>\n<strong>api:</strong> Add <code>&lt;NuxtWelcome /&gt;</code> component docs (<a href=\"https://github.com/nuxt/framework/pull/6745\">#6745</a>)</li>\n<li>Use updated h3 utils (<a href=\"https://github.com/nuxt/framework/pull/6818\">#6818</a>)</li>\n<li>\n<strong>api:</strong> Add missing kit utilities (<a href=\"https://github.com/nuxt/framework/pull/6841\">#6841</a>)</li>\n<li>\n<strong>plugins:</strong> Add note about composable usage (<a href=\"https://github.com/nuxt/framework/pull/6744\">#6744</a>)</li>\n<li>\n<strong>api:</strong> Add <code>useNuxtApp</code> composable (<a href=\"https://github.com/nuxt/framework/pull/6786\">#6786</a>)</li>\n<li>\n<strong>composables:</strong> Add nested and plugin injection examples (<a href=\"https://github.com/nuxt/framework/pull/6743\">#6743</a>)</li>\n<li>\n<strong>examples:</strong> Add jsx example (<a href=\"https://github.com/nuxt/framework/pull/6870\">#6870</a>)</li>\n<li>\n<strong>api:</strong> Add <code>addRouteMiddleware</code> util (<a href=\"https://github.com/nuxt/framework/pull/6894\">#6894</a>)</li>\n<li>Update stormkit link (<a href=\"https://github.com/nuxt/framework/commit/3ee812939\">3ee812939</a>)</li>\n<li>Update link to pinia nuxt module (<a href=\"https://github.com/nuxt/framework/pull/6952\">#6952</a>)</li>\n<li>\n<strong>deploy:</strong> Update command for csr prerendering (<a href=\"https://github.com/nuxt/framework/pull/6966\">#6966</a>)</li>\n<li>\n<strong>api:</strong> Enhance <code>abortNavigation</code> util (<a href=\"https://github.com/nuxt/framework/pull/6936\">#6936</a>)</li>\n<li>\n<strong>api:</strong> Add <code>defineNuxtRouteMiddleware</code> util (<a href=\"https://github.com/nuxt/framework/pull/6933\">#6933</a>)</li>\n<li>\n<strong>api:</strong> Add <code>definePageMeta</code> util (<a href=\"https://github.com/nuxt/framework/pull/6931\">#6931</a>)</li>\n<li>Replace backtick with apostrophe (<a href=\"https://github.com/nuxt/framework/pull/7015\">#7015</a>)</li>\n<li>\n<strong>api:</strong> Fix the layout file extension in cli example (<a href=\"https://github.com/nuxt/framework/pull/7024\">#7024</a>)</li>\n<li>\n<strong>schema:</strong> Update prefix for runtime config env variables (<a href=\"https://github.com/nuxt/framework/pull/6999\">#6999</a>)</li>\n<li>Add information on how to use options api asyncData (<a href=\"https://github.com/nuxt/framework/pull/7019\">#7019</a>)</li>\n<li>Increment directory structure numbers (<a href=\"https://github.com/nuxt/framework/pull/7102\">#7102</a>)</li>\n<li>Add explanatory comment before universal router stubs (<a href=\"https://github.com/nuxt/framework/pull/7124\">#7124</a>)</li>\n</ul>\n<div class=\"markdown-heading\"><h3 class=\"heading-element\">🏡 Chore</h3><a id=\"user-content--chore\" class=\"anchor\" aria-label=\"Permalink: 🏡 Chore\" href=\"#-chore\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<ul>\n<li>\n<strong>ci:</strong> Set timeout for each step (<a href=\"https://github.com/nuxt/framework/pull/6923\">#6923</a>)</li>\n<li>\n<strong>nuxt:</strong> Fix typo (<a href=\"https://github.com/nuxt/framework/pull/6971\">#6971</a>)</li>\n<li>Add <code>dev:preview</code> script for playground preview (<a href=\"https://github.com/nuxt/framework/pull/6961\">#6961</a>)</li>\n<li>\n<strong>repo:</strong> Remove backtick-type in bug issue-template (<a href=\"https://github.com/nuxt/framework/pull/7083\">#7083</a>)</li>\n<li>Bump rc version for edge versions (<a href=\"https://github.com/nuxt/framework/pull/7117\">#7117</a>)</li>\n<li>\n<strong>nuxt:</strong> Prevent error page rendering a null error (<a href=\"https://github.com/nuxt/framework/pull/7119\">#7119</a>)</li>\n<li>\n<strong>nuxt:</strong> Use latest <code>nitropack-edge</code> on release (<a href=\"https://github.com/nuxt/framework/pull/7036\">#7036</a>)</li>\n</ul>\n<div class=\"markdown-heading\"><h3 class=\"heading-element\">❤️  Contributors</h3><a id=\"user-content-️--contributors\" class=\"anchor\" aria-label=\"Permalink: ❤️  Contributors\" href=\"#️--contributors\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<ul>\n<li>4Kazelot</li>\n<li>Alex Kozack</li>\n<li>Alexander Lichter</li>\n<li>Angelo Schuler Piletti</li>\n<li>Anthony Fu</li>\n<li>Conrawl Rogers</li>\n<li>Damian Głowala</li>\n<li>Daniel Roe</li>\n<li>Harlan Wilton</li>\n<li>HomWang</li>\n<li>Ilya Artamonov</li>\n<li>Julien Huang</li>\n<li>Krutie Patel</li>\n<li>Lay</li>\n<li>Lexpeartha</li>\n<li>Louis Haftmann</li>\n<li>Mourad EL CADI</li>\n<li>Nils</li>\n<li>Ohb00</li>\n<li>Oumar Barry</li>\n<li>Pooya Parsa</li>\n<li>Qin Guan</li>\n<li>Richard Schloss</li>\n<li>Sébastien Chopin</li>\n<li>TheColaber</li>\n<li>Umut Aktaş</li>\n<li>Yaël Guilloux</li>\n<li>__Catalina</li>\n</ul>\n","assets":[]},{"id":74297475,"tag":"v3.0.0-rc.8","author":"pi0","name":"v3.0.0-rc.8","draft":false,"prerelease":false,"createdAt":"2022-08-12T13:35:33Z","publishedAt":"2022-08-12T13:44:07Z","markdown":"> **Note**\r\n> This version includes hotfixes from rc.7. Check [v3.0.0-rc.7 release notes](https://github.com/nuxt/framework/releases/tag/v3.0.0-rc.7) for all changes between [rc.6...rc.8](https://github.com/nuxt/framework/compare/v3.0.0-rc.7...v3.0.0-rc.8)\r\n\r\n>  **Warning**\r\n> There are slight API changes with this release candidate. \r\n\r\n💬 Join the [release discussion](https://github.com/nuxt/framework/discussions/6558)\r\n\r\n### 🚀 How to upgrade\r\n\r\n- **Automated:** `npx nuxi-edge@latest upgrade --force`\r\n- **Manual:** Bump `nuxt` dependency to `3.0.0-rc.8` and then use `npx nuxi-edge@latest cleanup` to cleanup any local caches\r\n\r\n### 🩹 Fixes\r\n\r\n  - **cli:** Fix issues with `nuxi upgrade` (#6514)\r\n  - **nuxt:** ⚠️  Allow `app:rendered` to modify ssr context and add `render:html` (#6521)\r\n  - **vite:** Remove `/@fs` from external ids (#6529)\r\n  - **nuxt:** Tree-shake devtools from production bundle (#6538)\r\n  - **vite, nuxt:** Resolve relative to `srcDir` rather than `rootDir` (#6546)\r\n\r\n### 📦 Build\r\n\r\n  - **nuxt:** Publish missing types (#6516)\r\n\r\n### 📖 Documentation\r\n\r\n  - Change `info` to `danger` for the pages root element (#6528)\r\n  - **quick-start:** Add the file path for disabling generating shim (#6519)\r\n  - **schema:** Grammar, punctuation and typo fixes (#6469)\r\n\r\n### ❤️  Contributors\r\n\r\n- Damian Głowala\r\n- Daniel Roe\r\n- Eugen Istoc\r\n- Jiang Menghao\r\n- Pooya Parsa\r\n- Timur Bolotov\r\n\r\n","html":"<blockquote>\n<p><strong>Note</strong>\nThis version includes hotfixes from rc.7. Check <a href=\"https://github.com/nuxt/framework/releases/tag/v3.0.0-rc.7\">v3.0.0-rc.7 release notes</a> for all changes between <a href=\"https://github.com/nuxt/framework/compare/v3.0.0-rc.7...v3.0.0-rc.8\">rc.6...rc.8</a></p>\n</blockquote>\n<blockquote>\n<p><strong>Warning</strong>\nThere are slight API changes with this release candidate.</p>\n</blockquote>\n<p>💬 Join the <a href=\"https://github.com/nuxt/framework/discussions/6558\">release discussion</a></p>\n<div class=\"markdown-heading\"><h3 class=\"heading-element\">🚀 How to upgrade</h3><a id=\"user-content--how-to-upgrade\" class=\"anchor\" aria-label=\"Permalink: 🚀 How to upgrade\" href=\"#-how-to-upgrade\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<ul>\n<li>\n<strong>Automated:</strong> <code>npx nuxi-edge@latest upgrade --force</code>\n</li>\n<li>\n<strong>Manual:</strong> Bump <code>nuxt</code> dependency to <code>3.0.0-rc.8</code> and then use <code>npx nuxi-edge@latest cleanup</code> to cleanup any local caches</li>\n</ul>\n<div class=\"markdown-heading\"><h3 class=\"heading-element\">🩹 Fixes</h3><a id=\"user-content--fixes\" class=\"anchor\" aria-label=\"Permalink: 🩹 Fixes\" href=\"#-fixes\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<ul>\n<li>\n<strong>cli:</strong> Fix issues with <code>nuxi upgrade</code> (#6514)</li>\n<li>\n<strong>nuxt:</strong> <g-emoji class=\"g-emoji\" alias=\"warning\">⚠️</g-emoji>  Allow <code>app:rendered</code> to modify ssr context and add <code>render:html</code> (#6521)</li>\n<li>\n<strong>vite:</strong> Remove <code>/@fs</code> from external ids (#6529)</li>\n<li>\n<strong>nuxt:</strong> Tree-shake devtools from production bundle (#6538)</li>\n<li>\n<strong>vite, nuxt:</strong> Resolve relative to <code>srcDir</code> rather than <code>rootDir</code> (#6546)</li>\n</ul>\n<div class=\"markdown-heading\"><h3 class=\"heading-element\">📦 Build</h3><a id=\"user-content--build\" class=\"anchor\" aria-label=\"Permalink: 📦 Build\" href=\"#-build\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<ul>\n<li>\n<strong>nuxt:</strong> Publish missing types (#6516)</li>\n</ul>\n<div class=\"markdown-heading\"><h3 class=\"heading-element\">📖 Documentation</h3><a id=\"user-content--documentation\" class=\"anchor\" aria-label=\"Permalink: 📖 Documentation\" href=\"#-documentation\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<ul>\n<li>Change <code>info</code> to <code>danger</code> for the pages root element (#6528)</li>\n<li>\n<strong>quick-start:</strong> Add the file path for disabling generating shim (#6519)</li>\n<li>\n<strong>schema:</strong> Grammar, punctuation and typo fixes (#6469)</li>\n</ul>\n<div class=\"markdown-heading\"><h3 class=\"heading-element\">❤️  Contributors</h3><a id=\"user-content-️--contributors\" class=\"anchor\" aria-label=\"Permalink: ❤️  Contributors\" href=\"#️--contributors\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<ul>\n<li>Damian Głowala</li>\n<li>Daniel Roe</li>\n<li>Eugen Istoc</li>\n<li>Jiang Menghao</li>\n<li>Pooya Parsa</li>\n<li>Timur Bolotov</li>\n</ul>\n","assets":[]},{"id":74189846,"tag":"v3.0.0-rc.7","author":"pi0","name":"v3.0.0-rc.7 ","draft":false,"prerelease":false,"createdAt":"2022-08-11T10:40:11Z","publishedAt":"2022-08-11T10:49:26Z","markdown":">  **Warning**\r\n> There are slight API changes with this release candidate. Please check the linked issues marked with ⚠️\r\n\r\n> **Warning**\r\n> This release contains some regressions. Please upgrade to the latest [v3.0.0-rc.8](https://github.com/nuxt/framework/releases/tag/v3.0.0-rc.8)\r\n\r\n### 🚀 Enhancements\r\n\r\n  - **vite:** Check types with `vue-tsc` (#6012)\r\n  - **vite:** ⚠️ Upgrade to vite v3 (#5398)\r\n  - **nuxt:** ⚠️  Only scan top level  `composables/` with glob support (#6025)\r\n  - **nuxt:** Improve error DX (#4539)\r\n  - **cli:** `nuxi cleanup` command (#6125)\r\n  - **nuxt, schema:** Add `<NoScript>` component and `noscript` typings (#6139)\r\n  - **nuxt:** `app:rendered` and `render:response` hooks (#6042)\r\n  - **nuxt:** ⚠️ Add support for `components/global` dir (#6070)\r\n  - **nuxt:** Extends support for `app.vue` (#6228)\r\n  - **nuxt:** Add `fetchpriority` attribute and literal typings for meta components (#6251)\r\n  - **kit:** Support `followSymbolicLinks` option for `resolveFiles` (#6240)\r\n  - **nuxt:** Remove wrapper from client only components (#6165)\r\n  - **nuxt:** Add `setResponseStatus` utility (#6306)\r\n  - **vite:** Log vite-node hmr updates (#6351)\r\n  - **nuxt:** Update to `vue-bundle-renderer@0.4` (#6210)\r\n  - **nuxt:** Update nitropack to latest (#6442)\r\n\r\n\r\n### 🔥 Performance\r\n\r\n  - **nuxt:** Transform `#imports` to improve tree-shaking (#5763)\r\n  - **vite-node:** Only invalidate cache for user code (#6156)\r\n\r\n### 🩹 Fixes\r\n\r\n  - **webpack:** Do not resolve `#internal/nitro` alias internally (#5987)\r\n  - **nuxt:** ⚠️  Change `statusCode`  type to number for error page template (#6010)\r\n  - **kit, nuxt:** Always sort globby results (#6029)\r\n  - **pages:** Ignore expression delimiters within quotes (#6033)\r\n  - **nuxt:** Always write nitro types when building (#6035)\r\n  - **kit:** Resolve aliases in plugin src (#6037)\r\n  - **vite:** Invalidate virtual files when changed (#6038)\r\n  - **nuxt:** Use relative path to generate plugin variables (#6030)\r\n  - **types:** Generate relative path in `imports.d.ts` (#6054)\r\n  - **nuxt:** Auto import for components with the external template (#6053)\r\n  - **vite:** Ignore `baseurl` when pruning manifest (#6063)\r\n  - **nuxt:** Don't ignore components dirs with the same prefix (#6116)\r\n  - **vite:** Resolve `tsconfig.json` for vue-tsc type checker (#6069)\r\n  - **cli:** Load `.env` file before starting dev server (#6119)\r\n  - **nuxt:** Normalize manifest css file entries (#6112)\r\n  - **vite:** Allow overriding client HMR options (#6082)\r\n  - **nuxt:** Clear `vite-node` runner cache after each render (#6154)\r\n  - **nuxt:** Add  error event declaration to the `<NuxtErrorBoundary>` component (#6141)\r\n  - **schema:** Add empty noscript array (#6155)\r\n  - **vite:** Use `unjs/externality` to handle `vite-node` externals (#6153)\r\n  - **nuxt:** Allow `useHead` to accept computed values (#6174)\r\n  - **schema:** Exclude functions from `DeepPartial` (#6176)\r\n  - **nuxt:** Don't call renderMeta if it is not defined (#6201)\r\n  - **vite, webpack:** Generate composable keys based on order (#6191)\r\n  - **schema:** Add typings for `vite.vue` options (#6220)\r\n  - **vite:** Fix dist dir resolution (#6215)\r\n  - **webpack:** Output `.mjs` to use crossorigin preloads (#6232)\r\n  - **kit:** Try extensions with `resolvePath` with absolute input (#6233)\r\n  - **nuxt:** Do not allow catchalls to have child routes (#6257)\r\n  - **nuxt:** Narrow `nuxt.config` import protection (#6279)\r\n  - **nuxt:** Separate routes for different suspense forks (#6275)\r\n  - **nuxt:** Avoid duplicate titleTemplate (#6296)\r\n  - **nuxt:** Render head scripts that use `body: true` (#6293)\r\n  - **nuxt:** Generate `200.html` and `404.html` spa fallback files (#6308)\r\n  - **nuxt:** Extract component to provide route (#6325)\r\n  - **nuxt:** Remove literal `<script setup>` from comment (#6331)\r\n  - **vite:** Improve `vite-node` hmr (#6343)\r\n  - **nuxt:** Better equality check for json cookies (#6352)\r\n  - **nuxt:** Make the route provided to page children reactive (#6349)\r\n  - **nuxi, kit:** Enable `esmResolve` flag for `jiti` (#6356)\r\n  - **nuxt:** Resolve plugins and middleware to their full path (#6350)\r\n  - **vite:** Use URL for entry on windows (#6355)\r\n  - **nuxt:** Remove side-effect imports from page metadata (#6376)\r\n  - **nuxt:** Type `useRoute` return (#6395)\r\n  - **schema:** Cleanup meta tags and deduplicate charset and viewport (#6378)\r\n  - **kit:** Move relative path handling back into nuxt templates (#6430)\r\n  - **cli:** Upgrade `listhen` (#6434)\r\n  - **nuxt:** Do not log `404` and `showError` as fatal by default (#6437)\r\n  - **nuxt:** Add `viteServerDynamicImports` as experimental flag (#6433)\r\n  - **nuxt:** Use payload error state as the source of truth (#6389)\r\n  - **vite:** Add `module` type to vite node entry (#6448)\r\n  - **nuxt:** Handle immediate errors when calling `useAsyncData` (#6441)\r\n  - **nuxt:** Ensure component dirs in `node_modules` have lower scanning priority (#6382)\r\n  - **nuxt:** InteropDefault for page component imports (#6468)\r\n  - **nuxt:** Immediately call `asyncData` handler (#6472)\r\n  - **nuxt:** Log fatal errors as well as unhandled (#6488)\r\n\r\n\r\n### 💅 Refactors\r\n\r\n  - **nuxt:** Enhance `useFetch` and `useLazyFetch` request type (#4825)\r\n  - **vite:** Reuse logic and improve code splitting (#6164)\r\n  - **test-utils:** Remove unused codes (#6369)\r\n  - **nuxt:** ⚠️  Remove `null` handling for `titleTemplate` (#6487)\r\n\r\n\r\n### 📖 Documentation\r\n\r\n  - Fix typo in the roadmap (#5979)\r\n  - Update bridge migration with info about generating `.nuxt/tsconfig.json` for tests (#5967)\r\n  - Warn that `useState` should only contain JSON-serializable content (#5994)\r\n  - **runtime-config:** Clarify how environment variables are loaded (#5916)\r\n  - Add explicit `createError` import (#6050)\r\n  - Expand contribution guide for ecosystem (#5922)\r\n  - Grammar fix (#6106)\r\n  - Update the link to the configuration (#6137)\r\n  - Grammar fix (#6166)\r\n  - **api:** Add `<NuxtLayout>` component docs (#6264)\r\n  - Add `theme-color` meta (#6250)\r\n  - Fix external link display text (#6323)\r\n  - **api:** Add missing hooks and environment column (#6329)\r\n  - Add missing periods (2cbdc5c0)\r\n  - **useFetch:** Minor punctuation fixes (#6409)\r\n  - Update vue-router links (#6421)\r\n  - Update full static status (#6460)\r\n\r\n\r\n### 📦 Build\r\n\r\n  - Upgrade to unbuild 0.8.x (#6483)\r\n\r\n### ✅ Tests\r\n\r\n  - Wrap components with `<div>` (#6192)\r\n  - Add key matching test for keyed composables (#6372)\r\n\r\n### ❤️  Contributors\r\n\r\n- Alwin Lohrie\r\n- Anthony Fu\r\n- Brendan Mulholland\r\n- CSY54\r\n- Conrawl Rogers\r\n- Cédric Exbrayat\r\n- Damian Głowala\r\n- Daniel Roe\r\n- David Tai\r\n- Ennio Visconti\r\n- Gregor Becker\r\n- Harlan Wilton\r\n- Hecateball\r\n- Julien Huang\r\n- Kazuya Kawaguchi\r\n- Kevin Marrec\r\n- Krutie Patel\r\n- Lakshya Singh\r\n- Mitsuki Fukunaga\r\n- Mohammad Hosein Feizi\r\n- Nathan Chase\r\n- Nur Muhammad\r\n- OptimusePrime\r\n- Pooya Parsa\r\n- Rio Weber\r\n- Sanjaiyan Parthipan\r\n- Sébastien Chopin\r\n- Thomas\r\n- Timur Bolotov\r\n- Victor Saa\r\n- YuTin Liu\r\n","html":"<blockquote>\n<p><strong>Warning</strong>\nThere are slight API changes with this release candidate. Please check the linked issues marked with <g-emoji class=\"g-emoji\" alias=\"warning\">⚠️</g-emoji></p>\n</blockquote>\n<blockquote>\n<p><strong>Warning</strong>\nThis release contains some regressions. Please upgrade to the latest <a href=\"https://github.com/nuxt/framework/releases/tag/v3.0.0-rc.8\">v3.0.0-rc.8</a></p>\n</blockquote>\n<div class=\"markdown-heading\"><h3 class=\"heading-element\">🚀 Enhancements</h3><a id=\"user-content--enhancements\" class=\"anchor\" aria-label=\"Permalink: 🚀 Enhancements\" href=\"#-enhancements\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<ul>\n<li>\n<strong>vite:</strong> Check types with <code>vue-tsc</code> (#6012)</li>\n<li>\n<strong>vite:</strong> <g-emoji class=\"g-emoji\" alias=\"warning\">⚠️</g-emoji> Upgrade to vite v3 (#5398)</li>\n<li>\n<strong>nuxt:</strong> <g-emoji class=\"g-emoji\" alias=\"warning\">⚠️</g-emoji>  Only scan top level  <code>composables/</code> with glob support (#6025)</li>\n<li>\n<strong>nuxt:</strong> Improve error DX (#4539)</li>\n<li>\n<strong>cli:</strong> <code>nuxi cleanup</code> command (#6125)</li>\n<li>\n<strong>nuxt, schema:</strong> Add <code>&lt;NoScript&gt;</code> component and <code>noscript</code> typings (#6139)</li>\n<li>\n<strong>nuxt:</strong> <code>app:rendered</code> and <code>render:response</code> hooks (#6042)</li>\n<li>\n<strong>nuxt:</strong> <g-emoji class=\"g-emoji\" alias=\"warning\">⚠️</g-emoji> Add support for <code>components/global</code> dir (#6070)</li>\n<li>\n<strong>nuxt:</strong> Extends support for <code>app.vue</code> (#6228)</li>\n<li>\n<strong>nuxt:</strong> Add <code>fetchpriority</code> attribute and literal typings for meta components (#6251)</li>\n<li>\n<strong>kit:</strong> Support <code>followSymbolicLinks</code> option for <code>resolveFiles</code> (#6240)</li>\n<li>\n<strong>nuxt:</strong> Remove wrapper from client only components (#6165)</li>\n<li>\n<strong>nuxt:</strong> Add <code>setResponseStatus</code> utility (#6306)</li>\n<li>\n<strong>vite:</strong> Log vite-node hmr updates (#6351)</li>\n<li>\n<strong>nuxt:</strong> Update to <code>vue-bundle-renderer@0.4</code> (#6210)</li>\n<li>\n<strong>nuxt:</strong> Update nitropack to latest (#6442)</li>\n</ul>\n<div class=\"markdown-heading\"><h3 class=\"heading-element\">🔥 Performance</h3><a id=\"user-content--performance\" class=\"anchor\" aria-label=\"Permalink: 🔥 Performance\" href=\"#-performance\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<ul>\n<li>\n<strong>nuxt:</strong> Transform <code>#imports</code> to improve tree-shaking (#5763)</li>\n<li>\n<strong>vite-node:</strong> Only invalidate cache for user code (#6156)</li>\n</ul>\n<div class=\"markdown-heading\"><h3 class=\"heading-element\">🩹 Fixes</h3><a id=\"user-content--fixes\" class=\"anchor\" aria-label=\"Permalink: 🩹 Fixes\" href=\"#-fixes\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<ul>\n<li>\n<strong>webpack:</strong> Do not resolve <code>#internal/nitro</code> alias internally (#5987)</li>\n<li>\n<strong>nuxt:</strong> <g-emoji class=\"g-emoji\" alias=\"warning\">⚠️</g-emoji>  Change <code>statusCode</code>  type to number for error page template (#6010)</li>\n<li>\n<strong>kit, nuxt:</strong> Always sort globby results (#6029)</li>\n<li>\n<strong>pages:</strong> Ignore expression delimiters within quotes (#6033)</li>\n<li>\n<strong>nuxt:</strong> Always write nitro types when building (#6035)</li>\n<li>\n<strong>kit:</strong> Resolve aliases in plugin src (#6037)</li>\n<li>\n<strong>vite:</strong> Invalidate virtual files when changed (#6038)</li>\n<li>\n<strong>nuxt:</strong> Use relative path to generate plugin variables (#6030)</li>\n<li>\n<strong>types:</strong> Generate relative path in <code>imports.d.ts</code> (#6054)</li>\n<li>\n<strong>nuxt:</strong> Auto import for components with the external template (#6053)</li>\n<li>\n<strong>vite:</strong> Ignore <code>baseurl</code> when pruning manifest (#6063)</li>\n<li>\n<strong>nuxt:</strong> Don't ignore components dirs with the same prefix (#6116)</li>\n<li>\n<strong>vite:</strong> Resolve <code>tsconfig.json</code> for vue-tsc type checker (#6069)</li>\n<li>\n<strong>cli:</strong> Load <code>.env</code> file before starting dev server (#6119)</li>\n<li>\n<strong>nuxt:</strong> Normalize manifest css file entries (#6112)</li>\n<li>\n<strong>vite:</strong> Allow overriding client HMR options (#6082)</li>\n<li>\n<strong>nuxt:</strong> Clear <code>vite-node</code> runner cache after each render (#6154)</li>\n<li>\n<strong>nuxt:</strong> Add  error event declaration to the <code>&lt;NuxtErrorBoundary&gt;</code> component (#6141)</li>\n<li>\n<strong>schema:</strong> Add empty noscript array (#6155)</li>\n<li>\n<strong>vite:</strong> Use <code>unjs/externality</code> to handle <code>vite-node</code> externals (#6153)</li>\n<li>\n<strong>nuxt:</strong> Allow <code>useHead</code> to accept computed values (#6174)</li>\n<li>\n<strong>schema:</strong> Exclude functions from <code>DeepPartial</code> (#6176)</li>\n<li>\n<strong>nuxt:</strong> Don't call renderMeta if it is not defined (#6201)</li>\n<li>\n<strong>vite, webpack:</strong> Generate composable keys based on order (#6191)</li>\n<li>\n<strong>schema:</strong> Add typings for <code>vite.vue</code> options (#6220)</li>\n<li>\n<strong>vite:</strong> Fix dist dir resolution (#6215)</li>\n<li>\n<strong>webpack:</strong> Output <code>.mjs</code> to use crossorigin preloads (#6232)</li>\n<li>\n<strong>kit:</strong> Try extensions with <code>resolvePath</code> with absolute input (#6233)</li>\n<li>\n<strong>nuxt:</strong> Do not allow catchalls to have child routes (#6257)</li>\n<li>\n<strong>nuxt:</strong> Narrow <code>nuxt.config</code> import protection (#6279)</li>\n<li>\n<strong>nuxt:</strong> Separate routes for different suspense forks (#6275)</li>\n<li>\n<strong>nuxt:</strong> Avoid duplicate titleTemplate (#6296)</li>\n<li>\n<strong>nuxt:</strong> Render head scripts that use <code>body: true</code> (#6293)</li>\n<li>\n<strong>nuxt:</strong> Generate <code>200.html</code> and <code>404.html</code> spa fallback files (#6308)</li>\n<li>\n<strong>nuxt:</strong> Extract component to provide route (#6325)</li>\n<li>\n<strong>nuxt:</strong> Remove literal <code>&lt;script setup&gt;</code> from comment (#6331)</li>\n<li>\n<strong>vite:</strong> Improve <code>vite-node</code> hmr (#6343)</li>\n<li>\n<strong>nuxt:</strong> Better equality check for json cookies (#6352)</li>\n<li>\n<strong>nuxt:</strong> Make the route provided to page children reactive (#6349)</li>\n<li>\n<strong>nuxi, kit:</strong> Enable <code>esmResolve</code> flag for <code>jiti</code> (#6356)</li>\n<li>\n<strong>nuxt:</strong> Resolve plugins and middleware to their full path (#6350)</li>\n<li>\n<strong>vite:</strong> Use URL for entry on windows (#6355)</li>\n<li>\n<strong>nuxt:</strong> Remove side-effect imports from page metadata (#6376)</li>\n<li>\n<strong>nuxt:</strong> Type <code>useRoute</code> return (#6395)</li>\n<li>\n<strong>schema:</strong> Cleanup meta tags and deduplicate charset and viewport (#6378)</li>\n<li>\n<strong>kit:</strong> Move relative path handling back into nuxt templates (#6430)</li>\n<li>\n<strong>cli:</strong> Upgrade <code>listhen</code> (#6434)</li>\n<li>\n<strong>nuxt:</strong> Do not log <code>404</code> and <code>showError</code> as fatal by default (#6437)</li>\n<li>\n<strong>nuxt:</strong> Add <code>viteServerDynamicImports</code> as experimental flag (#6433)</li>\n<li>\n<strong>nuxt:</strong> Use payload error state as the source of truth (#6389)</li>\n<li>\n<strong>vite:</strong> Add <code>module</code> type to vite node entry (#6448)</li>\n<li>\n<strong>nuxt:</strong> Handle immediate errors when calling <code>useAsyncData</code> (#6441)</li>\n<li>\n<strong>nuxt:</strong> Ensure component dirs in <code>node_modules</code> have lower scanning priority (#6382)</li>\n<li>\n<strong>nuxt:</strong> InteropDefault for page component imports (#6468)</li>\n<li>\n<strong>nuxt:</strong> Immediately call <code>asyncData</code> handler (#6472)</li>\n<li>\n<strong>nuxt:</strong> Log fatal errors as well as unhandled (#6488)</li>\n</ul>\n<div class=\"markdown-heading\"><h3 class=\"heading-element\">💅 Refactors</h3><a id=\"user-content--refactors\" class=\"anchor\" aria-label=\"Permalink: 💅 Refactors\" href=\"#-refactors\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<ul>\n<li>\n<strong>nuxt:</strong> Enhance <code>useFetch</code> and <code>useLazyFetch</code> request type (#4825)</li>\n<li>\n<strong>vite:</strong> Reuse logic and improve code splitting (#6164)</li>\n<li>\n<strong>test-utils:</strong> Remove unused codes (#6369)</li>\n<li>\n<strong>nuxt:</strong> <g-emoji class=\"g-emoji\" alias=\"warning\">⚠️</g-emoji>  Remove <code>null</code> handling for <code>titleTemplate</code> (#6487)</li>\n</ul>\n<div class=\"markdown-heading\"><h3 class=\"heading-element\">📖 Documentation</h3><a id=\"user-content--documentation\" class=\"anchor\" aria-label=\"Permalink: 📖 Documentation\" href=\"#-documentation\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<ul>\n<li>Fix typo in the roadmap (#5979)</li>\n<li>Update bridge migration with info about generating <code>.nuxt/tsconfig.json</code> for tests (#5967)</li>\n<li>Warn that <code>useState</code> should only contain JSON-serializable content (#5994)</li>\n<li>\n<strong>runtime-config:</strong> Clarify how environment variables are loaded (#5916)</li>\n<li>Add explicit <code>createError</code> import (#6050)</li>\n<li>Expand contribution guide for ecosystem (#5922)</li>\n<li>Grammar fix (#6106)</li>\n<li>Update the link to the configuration (#6137)</li>\n<li>Grammar fix (#6166)</li>\n<li>\n<strong>api:</strong> Add <code>&lt;NuxtLayout&gt;</code> component docs (#6264)</li>\n<li>Add <code>theme-color</code> meta (#6250)</li>\n<li>Fix external link display text (#6323)</li>\n<li>\n<strong>api:</strong> Add missing hooks and environment column (#6329)</li>\n<li>Add missing periods (2cbdc5c0)</li>\n<li>\n<strong>useFetch:</strong> Minor punctuation fixes (#6409)</li>\n<li>Update vue-router links (#6421)</li>\n<li>Update full static status (#6460)</li>\n</ul>\n<div class=\"markdown-heading\"><h3 class=\"heading-element\">📦 Build</h3><a id=\"user-content--build\" class=\"anchor\" aria-label=\"Permalink: 📦 Build\" href=\"#-build\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<ul>\n<li>Upgrade to unbuild 0.8.x (#6483)</li>\n</ul>\n<div class=\"markdown-heading\"><h3 class=\"heading-element\">✅ Tests</h3><a id=\"user-content--tests\" class=\"anchor\" aria-label=\"Permalink: ✅ Tests\" href=\"#-tests\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<ul>\n<li>Wrap components with <code>&lt;div&gt;</code> (#6192)</li>\n<li>Add key matching test for keyed composables (#6372)</li>\n</ul>\n<div class=\"markdown-heading\"><h3 class=\"heading-element\">❤️  Contributors</h3><a id=\"user-content-️--contributors\" class=\"anchor\" aria-label=\"Permalink: ❤️  Contributors\" href=\"#️--contributors\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<ul>\n<li>Alwin Lohrie</li>\n<li>Anthony Fu</li>\n<li>Brendan Mulholland</li>\n<li>CSY54</li>\n<li>Conrawl Rogers</li>\n<li>Cédric Exbrayat</li>\n<li>Damian Głowala</li>\n<li>Daniel Roe</li>\n<li>David Tai</li>\n<li>Ennio Visconti</li>\n<li>Gregor Becker</li>\n<li>Harlan Wilton</li>\n<li>Hecateball</li>\n<li>Julien Huang</li>\n<li>Kazuya Kawaguchi</li>\n<li>Kevin Marrec</li>\n<li>Krutie Patel</li>\n<li>Lakshya Singh</li>\n<li>Mitsuki Fukunaga</li>\n<li>Mohammad Hosein Feizi</li>\n<li>Nathan Chase</li>\n<li>Nur Muhammad</li>\n<li>OptimusePrime</li>\n<li>Pooya Parsa</li>\n<li>Rio Weber</li>\n<li>Sanjaiyan Parthipan</li>\n<li>Sébastien Chopin</li>\n<li>Thomas</li>\n<li>Timur Bolotov</li>\n<li>Victor Saa</li>\n<li>YuTin Liu</li>\n</ul>\n","assets":[]},{"id":72209393,"tag":"v3.0.0-rc.6","author":"pi0","name":"v3.0.0-rc.6","draft":false,"prerelease":false,"createdAt":"2022-07-18T10:06:04Z","publishedAt":"2022-07-18T10:07:28Z","markdown":"✅ RC.6 is a hotfix release fixing known issues with previous releases\r\n\r\n### 🚀 Enhancements\r\n\r\n  - **schema:** Sync types of vite v2.9.x (#5896)\r\n\r\n### 🔥 Performance\r\n\r\n  - **nuxt:** Tree-shake client-only components from ssr bundle (#5750). Enabled by experimental `treeshakeClientOnly` flag (#5934)\r\n\r\n### 🩹 Fixes\r\n\r\n  - **vite:** Set transform mode for `vite-node` (#5854)\r\n  - **kit:** Only call `viteExtendConfig` callback once (#5929)\r\n  - **nuxt:** Lazy load and tree-shake error templates (#5930)\r\n  - **pkg:** Use fixed version range for monorepo packages (#5933)\r\n  - **vite:** Avoid creating vite server for production build (#5941)\r\n  - **vite:** Unset `build.watch` options for production build (#5958)\r\n  - **vite:** Use more strict app entry check in dev-bundler (#5959)\r\n  - **cli:** Add missing `types` field (#5962)\r\n\r\n### 📖 Documentation\r\n\r\n  - Fix typo (#5881)\r\n  - Improve runtimeConfig example (#5785)\r\n  - Add readmore link (#5893)\r\n  - Add way to pass `.env` variables to nuxt app in production (#5879)\r\n  - Add missing `initialCache` to `UseFetchOptions` types (#5908)\r\n  - Update roadmap (#5935)\r\n  - **testing:** Add missing import (#5956)\r\n\r\n### ❤️ Contributors\r\n\r\n- Anthony Fu\r\n- Benicio Cardozo\r\n- Bot08\r\n- Damian\r\n- Daniel Roe\r\n- Kevin Marrec\r\n- Lay\r\n- Lm\r\n- OptimusePrime\r\n- Pooya Parsa\r\n- Yoho\r\n- 码农小余\r\n\r\nSee all changes: https://github.com/nuxt/framework/compare/v3.0.0-rc.5...v3.0.0-rc.6\r\n","html":"<p>✅ RC.6 is a hotfix release fixing known issues with previous releases</p>\n<div class=\"markdown-heading\"><h3 class=\"heading-element\">🚀 Enhancements</h3><a id=\"user-content--enhancements\" class=\"anchor\" aria-label=\"Permalink: 🚀 Enhancements\" href=\"#-enhancements\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<ul>\n<li>\n<strong>schema:</strong> Sync types of vite v2.9.x (#5896)</li>\n</ul>\n<div class=\"markdown-heading\"><h3 class=\"heading-element\">🔥 Performance</h3><a id=\"user-content--performance\" class=\"anchor\" aria-label=\"Permalink: 🔥 Performance\" href=\"#-performance\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<ul>\n<li>\n<strong>nuxt:</strong> Tree-shake client-only components from ssr bundle (#5750). Enabled by experimental <code>treeshakeClientOnly</code> flag (#5934)</li>\n</ul>\n<div class=\"markdown-heading\"><h3 class=\"heading-element\">🩹 Fixes</h3><a id=\"user-content--fixes\" class=\"anchor\" aria-label=\"Permalink: 🩹 Fixes\" href=\"#-fixes\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<ul>\n<li>\n<strong>vite:</strong> Set transform mode for <code>vite-node</code> (#5854)</li>\n<li>\n<strong>kit:</strong> Only call <code>viteExtendConfig</code> callback once (#5929)</li>\n<li>\n<strong>nuxt:</strong> Lazy load and tree-shake error templates (#5930)</li>\n<li>\n<strong>pkg:</strong> Use fixed version range for monorepo packages (#5933)</li>\n<li>\n<strong>vite:</strong> Avoid creating vite server for production build (#5941)</li>\n<li>\n<strong>vite:</strong> Unset <code>build.watch</code> options for production build (#5958)</li>\n<li>\n<strong>vite:</strong> Use more strict app entry check in dev-bundler (#5959)</li>\n<li>\n<strong>cli:</strong> Add missing <code>types</code> field (#5962)</li>\n</ul>\n<div class=\"markdown-heading\"><h3 class=\"heading-element\">📖 Documentation</h3><a id=\"user-content--documentation\" class=\"anchor\" aria-label=\"Permalink: 📖 Documentation\" href=\"#-documentation\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<ul>\n<li>Fix typo (#5881)</li>\n<li>Improve runtimeConfig example (#5785)</li>\n<li>Add readmore link (#5893)</li>\n<li>Add way to pass <code>.env</code> variables to nuxt app in production (#5879)</li>\n<li>Add missing <code>initialCache</code> to <code>UseFetchOptions</code> types (#5908)</li>\n<li>Update roadmap (#5935)</li>\n<li>\n<strong>testing:</strong> Add missing import (#5956)</li>\n</ul>\n<div class=\"markdown-heading\"><h3 class=\"heading-element\">❤️ Contributors</h3><a id=\"user-content-️-contributors\" class=\"anchor\" aria-label=\"Permalink: ❤️ Contributors\" href=\"#️-contributors\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<ul>\n<li>Anthony Fu</li>\n<li>Benicio Cardozo</li>\n<li>Bot08</li>\n<li>Damian</li>\n<li>Daniel Roe</li>\n<li>Kevin Marrec</li>\n<li>Lay</li>\n<li>Lm</li>\n<li>OptimusePrime</li>\n<li>Pooya Parsa</li>\n<li>Yoho</li>\n<li>码农小余</li>\n</ul>\n<p>See all changes: <a href=\"https://github.com/nuxt/framework/compare/v3.0.0-rc.5...v3.0.0-rc.6\">https://github.com/nuxt/framework/compare/v3.0.0-rc.5...v3.0.0-rc.6</a></p>\n","assets":[]},{"id":71917218,"tag":"v3.0.0-rc.5","author":"pi0","name":"","draft":false,"prerelease":false,"createdAt":"2022-07-13T15:40:10Z","publishedAt":"2022-07-13T15:46:54Z","markdown":"This release is featuring 25+ bug fixes, keyless composables, <NuxtLoadingIndicator> component, and upgraded deployment presets. Stay tuned for RC.6 with Vite 3 support and more enhancements ✨ \r\n\r\nFeedback about the release: [Join the discussion](https://github.com/nuxt/framework/discussions/5885)\r\n\r\nSee all changes: https://github.com/nuxt/framework/compare/v3.0.0-rc.4...v3.0.0-rc.5\r\n\r\n#### ⚠️  Breaking Changes\r\n\r\nThis release contains slight breaking changes. Please check the linked pull requests for notes.\r\n\r\n- **auto-import:** Unwrap auto imports in SFC templates (#5573)\r\n- **nuxt:** Support universal global middleware (#5038)\r\n- **nuxt:**  Remove legacy app context (#5630)\r\n\r\n\r\n### 🚀 Enhancements\r\n\r\n  - **kit:** Allow `addServerHandler` to use method suffix of the file path (#5465)\r\n  - **kit:** Support client and server flags for `addVitePlugin` (#5560)\r\n  - **auto-import:** ⚠️ Unwrap auto imports in SFC templates (#5573)\r\n  - **kit:** Add `addLayout` utility (#5537)\r\n  - **nuxt:** ⚠️ Support global middleware without router (#5038)\r\n  - **nuxt:** Allow passing custom fetch options to `useFetch` (#5660)\r\n  - **nuxt:** Prerender all pages by default (#5709)\r\n  - **nuxt:** Tree-shake client and server-only composables (#5749)\r\n  - **nuxt:** Automatically generate unique keys for keyed composables (#4955)\r\n  - **nuxt:** Support `custom` prop for `<nuxt-link>` (#4249)\r\n  - **nuxt:** Add `<NuxtLoadingIndicator>` component [WIP] (#5121)\r\n\r\n\r\n### 🔥 Performance\r\n\r\n  - **nuxt:** ⚠️  Remove legacy app context (#5630)\r\n\r\n\r\n### 🩹 Fixes\r\n\r\n  - **schema:** Add types for `vite:` hooks (#5472)\r\n  - **nuxt:** Normalize string transpile paths for windows (#5461)\r\n  - **nuxt:** Prefer unctx context over `getCurrentInstance` for `useNuxtApp` (#5456)\r\n  - **vite:** Add typecheck to vite plugins (#5464)\r\n  - **vite:** Disable HMR in build (#5505)\r\n  - **schema, postcss:** `cssnano` is enabled if not dev (#5583)\r\n  - **vite:** Do not watch ignored pathes (#5632)\r\n  - **vite-node:** On-demand manifest (#5017)\r\n  - **nuxt:** Pass attrs and props to client-only components (#5668)\r\n  - **kit:** Allow adding server-only and client-only components separately (#5686)\r\n  - **webpack:** Transpile `vue-demi` (#5721)\r\n  - **nuxt:** `useRequestHeaders` type should allow for `undefined` values (#5748)\r\n  - **nuxt:** Update `useFetch` key warning to include any function or blob (#5710)\r\n  - **vite:** Do not inline dynamic imports in server (#5506)\r\n  - **nuxt:** Handle `undefined` when applying defaults for `useAsyncData` (8d2f8057)\r\n  - **vite:** Fix `vite-node` circular reference (#5764)\r\n  - **nuxt:** Use virtual server stub for `ssr: false` (#5773)\r\n  - **nuxt:** Don't return stub function from tree-shaken composables (#5786)\r\n  - **test-utils:** Update vitest import path with `.mjs` (#5817)\r\n  - **nuxt:** Only tree-shake composables on their own lines (#5850)\r\n  - **nuxt:** Extend nitro routes instead of overriding (#5828)\r\n  - **cli:** Show base url in terminal (#5337)\r\n  - **nuxt:** Add import protection to nitro config (#5847)\r\n  - **nuxt:** Replace `process.dev` in nitro bundle (#5852)\r\n  - **nuxt:** Warn about legacy and invalid plugins (#5857)\r\n  - **nuxt:** Fix issues with `vue-router` and `@vue/devtools-api` bundling (#5874)\r\n  - **vite:** Close vite watcher before building (#5875)\r\n\r\n### 📖 Documentation\r\n\r\n  - Update roadmap (#5443)\r\n  - Rewrite note wording (#5462)\r\n  - Align value for defaulting the page's title with type declaration (#5447)\r\n  - Fix link to `nuxt/image` issue (#5490)\r\n  - Add notes about reporting security issues (#4895)\r\n  - **testing:** Fix async/await (#5539)\r\n  - **api:** Add watch parameter in `useFetch` options (#5562)\r\n  - **examples:** Rename `hello.ts` to `[...hello].ts` (#5261)\r\n  - Update usage about runtime config and environment variables (#5569)\r\n  - Update `pnpm` usage (#5597)\r\n  - Minor wording improvements (#5622)\r\n  - Replace invalid link to composables (#5611)\r\n  - Rework the layout section (#5118)\r\n  - **api:** Add docs for `<NuxtPage>` component (#5591)\r\n  - Clarify that `definePageMeta` only works in the pages directory (#5663)\r\n  - Update vuejs-development (#5679)\r\n  - Add full stop (#5680)\r\n  - **api:** Update commands with new `NODE_ENV` behavior (#5739)\r\n  - **plugins:** Add directive example (#5667)\r\n  - Fix Vite check for Nuxt 3 (#5768)\r\n  - `useFetch` uses isomorphic `$fetch` (#5769)\r\n  - Add content directory to directory-structure (#5755)\r\n  - **api:** Add `anavigateTo` docs (#5701)\r\n  - Fix link to `NuxtLoadingIndicator`  component src (#5776)\r\n  - Use `defineLazyHandler` in wasm example (#5797)\r\n  - Use `toUTCString` in `useAsyncData` example (#5798)\r\n  - Add missing dot (#5815)\r\n  - Update `nuxt-link` (#5819)\r\n  - Lint whitespaces (#5633)\r\n  - Fix typo (#5865)\r\n  - Fix typo (#5863)\r\n\r\n### ❤️  Contributors\r\n\r\n- Ahad Birang\r\n- Alexander Lichter\r\n- AnPineau\r\n- Anders Søgaard\r\n- Anthony Fu\r\n- Bob Olde Hampsink\r\n- Bot08\r\n- Clément Ollivier\r\n- Cupid Valentine\r\n- Damian\r\n- Daniel Roe\r\n- Donatelloraphael\r\n- Francisco Buceta\r\n- Haruaki OTAKE\r\n- Ibrahim Abdullahi Aliyu\r\n- Julien Huang\r\n- Krutie Patel\r\n- Mourad EL CADI\r\n- Mrauhu\r\n- Nestor Vera\r\n- Paranoid\r\n- Pooya Parsa\r\n- Qin Guan\r\n- Sumiren\r\n- Sébastien Chopin\r\n- Thibault Vlacich\r\n- Thomas Jowsey\r\n- Vasiliy\r\n- Xanlantos\r\n- Yuki Inoue\r\n- 井上裕貴\r\n\r\n\r\n","html":"<p>This release is featuring 25+ bug fixes, keyless composables,  component, and upgraded deployment presets. Stay tuned for RC.6 with Vite 3 support and more enhancements ✨</p>\n<p>Feedback about the release: <a href=\"https://github.com/nuxt/framework/discussions/5885\">Join the discussion</a></p>\n<p>See all changes: <a href=\"https://github.com/nuxt/framework/compare/v3.0.0-rc.4...v3.0.0-rc.5\">https://github.com/nuxt/framework/compare/v3.0.0-rc.4...v3.0.0-rc.5</a></p>\n<div class=\"markdown-heading\"><h4 class=\"heading-element\"><g-emoji class=\"g-emoji\" alias=\"warning\">⚠️</g-emoji>  Breaking Changes</h4><a id=\"user-content-️--breaking-changes\" class=\"anchor\" aria-label=\"Permalink: ⚠️  Breaking Changes\" href=\"#️--breaking-changes\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<p>This release contains slight breaking changes. Please check the linked pull requests for notes.</p>\n<ul>\n<li>\n<strong>auto-import:</strong> Unwrap auto imports in SFC templates (#5573)</li>\n<li>\n<strong>nuxt:</strong> Support universal global middleware (#5038)</li>\n<li>\n<strong>nuxt:</strong>  Remove legacy app context (#5630)</li>\n</ul>\n<div class=\"markdown-heading\"><h3 class=\"heading-element\">🚀 Enhancements</h3><a id=\"user-content--enhancements\" class=\"anchor\" aria-label=\"Permalink: 🚀 Enhancements\" href=\"#-enhancements\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<ul>\n<li>\n<strong>kit:</strong> Allow <code>addServerHandler</code> to use method suffix of the file path (#5465)</li>\n<li>\n<strong>kit:</strong> Support client and server flags for <code>addVitePlugin</code> (#5560)</li>\n<li>\n<strong>auto-import:</strong> <g-emoji class=\"g-emoji\" alias=\"warning\">⚠️</g-emoji> Unwrap auto imports in SFC templates (#5573)</li>\n<li>\n<strong>kit:</strong> Add <code>addLayout</code> utility (#5537)</li>\n<li>\n<strong>nuxt:</strong> <g-emoji class=\"g-emoji\" alias=\"warning\">⚠️</g-emoji> Support global middleware without router (#5038)</li>\n<li>\n<strong>nuxt:</strong> Allow passing custom fetch options to <code>useFetch</code> (#5660)</li>\n<li>\n<strong>nuxt:</strong> Prerender all pages by default (#5709)</li>\n<li>\n<strong>nuxt:</strong> Tree-shake client and server-only composables (#5749)</li>\n<li>\n<strong>nuxt:</strong> Automatically generate unique keys for keyed composables (#4955)</li>\n<li>\n<strong>nuxt:</strong> Support <code>custom</code> prop for <code>&lt;nuxt-link&gt;</code> (#4249)</li>\n<li>\n<strong>nuxt:</strong> Add <code>&lt;NuxtLoadingIndicator&gt;</code> component [WIP] (#5121)</li>\n</ul>\n<div class=\"markdown-heading\"><h3 class=\"heading-element\">🔥 Performance</h3><a id=\"user-content--performance\" class=\"anchor\" aria-label=\"Permalink: 🔥 Performance\" href=\"#-performance\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<ul>\n<li>\n<strong>nuxt:</strong> <g-emoji class=\"g-emoji\" alias=\"warning\">⚠️</g-emoji>  Remove legacy app context (#5630)</li>\n</ul>\n<div class=\"markdown-heading\"><h3 class=\"heading-element\">🩹 Fixes</h3><a id=\"user-content--fixes\" class=\"anchor\" aria-label=\"Permalink: 🩹 Fixes\" href=\"#-fixes\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<ul>\n<li>\n<strong>schema:</strong> Add types for <code>vite:</code> hooks (#5472)</li>\n<li>\n<strong>nuxt:</strong> Normalize string transpile paths for windows (#5461)</li>\n<li>\n<strong>nuxt:</strong> Prefer unctx context over <code>getCurrentInstance</code> for <code>useNuxtApp</code> (#5456)</li>\n<li>\n<strong>vite:</strong> Add typecheck to vite plugins (#5464)</li>\n<li>\n<strong>vite:</strong> Disable HMR in build (#5505)</li>\n<li>\n<strong>schema, postcss:</strong> <code>cssnano</code> is enabled if not dev (#5583)</li>\n<li>\n<strong>vite:</strong> Do not watch ignored pathes (#5632)</li>\n<li>\n<strong>vite-node:</strong> On-demand manifest (#5017)</li>\n<li>\n<strong>nuxt:</strong> Pass attrs and props to client-only components (#5668)</li>\n<li>\n<strong>kit:</strong> Allow adding server-only and client-only components separately (#5686)</li>\n<li>\n<strong>webpack:</strong> Transpile <code>vue-demi</code> (#5721)</li>\n<li>\n<strong>nuxt:</strong> <code>useRequestHeaders</code> type should allow for <code>undefined</code> values (#5748)</li>\n<li>\n<strong>nuxt:</strong> Update <code>useFetch</code> key warning to include any function or blob (#5710)</li>\n<li>\n<strong>vite:</strong> Do not inline dynamic imports in server (#5506)</li>\n<li>\n<strong>nuxt:</strong> Handle <code>undefined</code> when applying defaults for <code>useAsyncData</code> (8d2f8057)</li>\n<li>\n<strong>vite:</strong> Fix <code>vite-node</code> circular reference (#5764)</li>\n<li>\n<strong>nuxt:</strong> Use virtual server stub for <code>ssr: false</code> (#5773)</li>\n<li>\n<strong>nuxt:</strong> Don't return stub function from tree-shaken composables (#5786)</li>\n<li>\n<strong>test-utils:</strong> Update vitest import path with <code>.mjs</code> (#5817)</li>\n<li>\n<strong>nuxt:</strong> Only tree-shake composables on their own lines (#5850)</li>\n<li>\n<strong>nuxt:</strong> Extend nitro routes instead of overriding (#5828)</li>\n<li>\n<strong>cli:</strong> Show base url in terminal (#5337)</li>\n<li>\n<strong>nuxt:</strong> Add import protection to nitro config (#5847)</li>\n<li>\n<strong>nuxt:</strong> Replace <code>process.dev</code> in nitro bundle (#5852)</li>\n<li>\n<strong>nuxt:</strong> Warn about legacy and invalid plugins (#5857)</li>\n<li>\n<strong>nuxt:</strong> Fix issues with <code>vue-router</code> and <code>@vue/devtools-api</code> bundling (#5874)</li>\n<li>\n<strong>vite:</strong> Close vite watcher before building (#5875)</li>\n</ul>\n<div class=\"markdown-heading\"><h3 class=\"heading-element\">📖 Documentation</h3><a id=\"user-content--documentation\" class=\"anchor\" aria-label=\"Permalink: 📖 Documentation\" href=\"#-documentation\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<ul>\n<li>Update roadmap (#5443)</li>\n<li>Rewrite note wording (#5462)</li>\n<li>Align value for defaulting the page's title with type declaration (#5447)</li>\n<li>Fix link to <code>nuxt/image</code> issue (#5490)</li>\n<li>Add notes about reporting security issues (#4895)</li>\n<li>\n<strong>testing:</strong> Fix async/await (#5539)</li>\n<li>\n<strong>api:</strong> Add watch parameter in <code>useFetch</code> options (#5562)</li>\n<li>\n<strong>examples:</strong> Rename <code>hello.ts</code> to <code>[...hello].ts</code> (#5261)</li>\n<li>Update usage about runtime config and environment variables (#5569)</li>\n<li>Update <code>pnpm</code> usage (#5597)</li>\n<li>Minor wording improvements (#5622)</li>\n<li>Replace invalid link to composables (#5611)</li>\n<li>Rework the layout section (#5118)</li>\n<li>\n<strong>api:</strong> Add docs for <code>&lt;NuxtPage&gt;</code> component (#5591)</li>\n<li>Clarify that <code>definePageMeta</code> only works in the pages directory (#5663)</li>\n<li>Update vuejs-development (#5679)</li>\n<li>Add full stop (#5680)</li>\n<li>\n<strong>api:</strong> Update commands with new <code>NODE_ENV</code> behavior (#5739)</li>\n<li>\n<strong>plugins:</strong> Add directive example (#5667)</li>\n<li>Fix Vite check for Nuxt 3 (#5768)</li>\n<li>\n<code>useFetch</code> uses isomorphic <code>$fetch</code> (#5769)</li>\n<li>Add content directory to directory-structure (#5755)</li>\n<li>\n<strong>api:</strong> Add <code>anavigateTo</code> docs (#5701)</li>\n<li>Fix link to <code>NuxtLoadingIndicator</code>  component src (#5776)</li>\n<li>Use <code>defineLazyHandler</code> in wasm example (#5797)</li>\n<li>Use <code>toUTCString</code> in <code>useAsyncData</code> example (#5798)</li>\n<li>Add missing dot (#5815)</li>\n<li>Update <code>nuxt-link</code> (#5819)</li>\n<li>Lint whitespaces (#5633)</li>\n<li>Fix typo (#5865)</li>\n<li>Fix typo (#5863)</li>\n</ul>\n<div class=\"markdown-heading\"><h3 class=\"heading-element\">❤️  Contributors</h3><a id=\"user-content-️--contributors\" class=\"anchor\" aria-label=\"Permalink: ❤️  Contributors\" href=\"#️--contributors\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<ul>\n<li>Ahad Birang</li>\n<li>Alexander Lichter</li>\n<li>AnPineau</li>\n<li>Anders Søgaard</li>\n<li>Anthony Fu</li>\n<li>Bob Olde Hampsink</li>\n<li>Bot08</li>\n<li>Clément Ollivier</li>\n<li>Cupid Valentine</li>\n<li>Damian</li>\n<li>Daniel Roe</li>\n<li>Donatelloraphael</li>\n<li>Francisco Buceta</li>\n<li>Haruaki OTAKE</li>\n<li>Ibrahim Abdullahi Aliyu</li>\n<li>Julien Huang</li>\n<li>Krutie Patel</li>\n<li>Mourad EL CADI</li>\n<li>Mrauhu</li>\n<li>Nestor Vera</li>\n<li>Paranoid</li>\n<li>Pooya Parsa</li>\n<li>Qin Guan</li>\n<li>Sumiren</li>\n<li>Sébastien Chopin</li>\n<li>Thibault Vlacich</li>\n<li>Thomas Jowsey</li>\n<li>Vasiliy</li>\n<li>Xanlantos</li>\n<li>Yuki Inoue</li>\n<li>井上裕貴</li>\n</ul>\n","assets":[]},{"id":69298362,"tag":"v3.0.0-rc.4","author":"pi0","name":"v3.0.0-rc.4","draft":false,"prerelease":false,"createdAt":"2022-06-13T14:27:00Z","publishedAt":"2022-06-13T14:27:21Z","markdown":"See all changes: https://github.com/nuxt/framework/compare/v3.0.0-rc.3...v3.0.0-rc.4\r\n\r\nThis release contains commutative enhancements from RC.3. Thanks to all of the contributors to the code and documentation 💚 \r\n\r\n### 🚀 Enhancements\r\n\r\n  - **vite:** Replace `global` with `globalThis` (#4958)\r\n  - **nuxt:** Support auto imports within `<template>` (#4904)\r\n  - **nuxt:** Experimental flag to use external vue dependencies (#5083)\r\n\r\n\r\n### 🩹 Fixes\r\n\r\n  - **nuxt:** Respect baseurl when redirecting (#4933)\r\n  - **nuxt:** Check for 404s after user middleware (#4913)\r\n  - **cli:** Only reload for top level dirs (#4912)\r\n  - **vite:** Add `file://` protocol to `vite-node` entry file path (#4966)\r\n  - **test-utils:** Hardcode ipv4 ip for localhost (#4998)\r\n  - **nuxt:** Fix router redirection on aliased pages (#4982)\r\n  - **nuxt:** Allow passing extraneous attrs to meta components (#5071)\r\n  - **nuxt:** Add default empty title to trigger `titleTemplate` (#5064)\r\n  - **nuxt:** Default statusCode of `navigateTo` from `301` to `302` (#5173)\r\n  - **schema:** Add missed types for `title`, `bodyAttrs` and `htmlAttrs` (#5184)\r\n  - **nuxt:** Respect `navigateTo` options using server middleware in server-side (#5145)\r\n  - **nuxt:** Support `RouterView` props in `NuxtPage` (#5272)\r\n  - **schema, vite:** Resolve `mode` config correctly (#5255)\r\n  - **nuxt:** Add `ssrContext` types on `NuxtApp` (#5333)\r\n  - **types:** Tidy types for `useAsyncData` (#5340)\r\n  - **nuxt:** Relax server import protections (#5355)\r\n  - **nuxt:** Keep route param optionality when sibling is an index (#5300)\r\n  - **kit:** Pass resolved path to `isIgnored` (#5375)\r\n  - **vite, kit, nuxt:** Generate safe variable names using knitwork (#4906)\r\n  - **webpack:** Respect `build.transpile` (#5043)\r\n  - **nuxt:** Transform extends layers within `node_modules` (#5042)\r\n  - **nuxt:** Throw an error when using unknown route middleware (#5323)\r\n  - **nuxt:** Don't debounce watcher and include layers (#5002)\r\n  - **vite:** Don't terminate with escaped delimiters (#5409)\r\n  - **nuxt:** Exclude non-cwd auto-imports and don't process all files (#5421)\r\n  - **nuxt:** Ignore whitespace and commas within `resolveComponent` (#5428)\r\n  - **cli:** Always set `NODE_ENV` value with a warning (#5417)\r\n  - **nuxt:** Don't add macro query to the end of id (#5413)\r\n  - **webpack:** Enable `extractCSS` by default (#4388)\r\n\r\n\r\n### 💅 Refactors\r\n\r\n  - **vite, webpack, test-utils:** Use caret range for `vue` peer dependency (#5190)\r\n  - **cli:** Provide better advice on failing clone (#5155)\r\n  - Fix typo and code improvements (#5344)\r\n  - **cli:** Improve env update message (#5430)\r\n\r\n\r\n### 📖 Documentation\r\n\r\n  - Add missing parentheses in the `alias` example (#4995)\r\n  - Fix typo in environment variable (#4990)\r\n  - **data-fetching:** Add note about difference between `useFetch` and `useAsyncData` (#4974)\r\n  - **api:** Improve `useFetch` docs for body type and additional `ohmyfetch` options (#4985)\r\n  - Minor improvements for the quick start section (#5036)\r\n  - **middleware:** Add `navigateTo` options (#5044)\r\n  - Update wording of client-side rendering explanation (#5049)\r\n  - Demonstrate the multiple `useState` with same key (#5059)\r\n  - **config:** Correct naming of `NUXT_APP_CDN_URL` environment variable (#5032)\r\n  - Update logo to better support light and dark mode. (#5094)\r\n  - Fix nuxt app guide linking to a 404 page (#5122)\r\n  - **api:** Add experimental `--prerender` flag to `nuxi build` command (#5112)\r\n  - **api:** Add `key` option for `useFetch` (#5089)\r\n  - **roadmap:** Nuxt content v2 release (#5129)\r\n  - Add `--no-clear` flag in the documentation of development server (#5197)\r\n  - **deploy:** Update default host for node preset (#5228)\r\n  - **guide:** Add use of `NuxtLayout` in `app.vue` with pages (#5225)\r\n  - Small typo in the \"catch-all route\" description (#5273)\r\n  - **pages:** Add information for typing page metadata (#5270)\r\n  - Add documentation for `titleTemplate` (#5093)\r\n  - Fix typo in component migration guide (#5284)\r\n  - Fix typo in programmatic navigation (#5298)\r\n  - Add warning against layout as root element (#5345)\r\n  - Update keepalive key name (#5366)\r\n  - **api:** Add `useRequestEvent` (#5326)\r\n  - **api:** Add docs for `useRouter` composable (#4949)\r\n  - Update cookie example with `defineEventHandler` (#5405)\r\n  - Update plugin provide example (#5386)\r\n  - Fix mdn links for 301 and 302 http status (#5416)\r\n\r\n### 🏡 Chore\r\n\r\n  - Clean up jsdocs (#5397)\r\n  - Force single version of vite (#5400)\r\n\r\n\r\n### ❤️ New Contributors\r\n\r\n* @jremye made their first contribution in https://github.com/nuxt/framework/pull/4966\r\n* @0ri2N made their first contribution in https://github.com/nuxt/framework/pull/4995\r\n* @chris-zhu made their first contribution in https://github.com/nuxt/framework/pull/4990\r\n* @ArthurMJ96 made their first contribution in https://github.com/nuxt/framework/pull/4985\r\n* @aifodu made their first contribution in https://github.com/nuxt/framework/pull/5049\r\n* @husayt made their first contribution in https://github.com/nuxt/framework/pull/5059\r\n* @srtonz made their first contribution in https://github.com/nuxt/framework/pull/5032\r\n* @heychazza made their first contribution in https://github.com/nuxt/framework/pull/5094\r\n* @mishushakov made their first contribution in https://github.com/nuxt/framework/pull/5112\r\n* @ashgo-x made their first contribution in https://github.com/nuxt/framework/pull/5187\r\n* @SirMishaa made their first contribution in https://github.com/nuxt/framework/pull/5197\r\n* @cawa-93 made their first contribution in https://github.com/nuxt/framework/pull/5184\r\n* @JoseeWouters made their first contribution in https://github.com/nuxt/framework/pull/5225\r\n* @mael-queau made their first contribution in https://github.com/nuxt/framework/pull/5273\r\n* @AcelisWeaven made their first contribution in https://github.com/nuxt/framework/pull/5284\r\n* @nathanchase made their first contribution in https://github.com/nuxt/framework/pull/5298\r\n* @Zalexios made their first contribution in https://github.com/nuxt/framework/pull/5386\r\n* @MaximKing1 made their first contribution in https://github.com/nuxt/framework/pull/5416\r\n* @dotoleeoak made their first contribution in https://github.com/nuxt/framework/pull/5413\r\n* @ennioVisco made their first contribution in https://github.com/nuxt/framework/pull/5430\r\n","html":"<p>See all changes: <a href=\"https://github.com/nuxt/framework/compare/v3.0.0-rc.3...v3.0.0-rc.4\">https://github.com/nuxt/framework/compare/v3.0.0-rc.3...v3.0.0-rc.4</a></p>\n<p>This release contains commutative enhancements from RC.3. Thanks to all of the contributors to the code and documentation 💚</p>\n<div class=\"markdown-heading\"><h3 class=\"heading-element\">🚀 Enhancements</h3><a id=\"user-content--enhancements\" class=\"anchor\" aria-label=\"Permalink: 🚀 Enhancements\" href=\"#-enhancements\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<ul>\n<li>\n<strong>vite:</strong> Replace <code>global</code> with <code>globalThis</code> (#4958)</li>\n<li>\n<strong>nuxt:</strong> Support auto imports within <code>&lt;template&gt;</code> (#4904)</li>\n<li>\n<strong>nuxt:</strong> Experimental flag to use external vue dependencies (#5083)</li>\n</ul>\n<div class=\"markdown-heading\"><h3 class=\"heading-element\">🩹 Fixes</h3><a id=\"user-content--fixes\" class=\"anchor\" aria-label=\"Permalink: 🩹 Fixes\" href=\"#-fixes\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<ul>\n<li>\n<strong>nuxt:</strong> Respect baseurl when redirecting (#4933)</li>\n<li>\n<strong>nuxt:</strong> Check for 404s after user middleware (#4913)</li>\n<li>\n<strong>cli:</strong> Only reload for top level dirs (#4912)</li>\n<li>\n<strong>vite:</strong> Add <code>file://</code> protocol to <code>vite-node</code> entry file path (#4966)</li>\n<li>\n<strong>test-utils:</strong> Hardcode ipv4 ip for localhost (#4998)</li>\n<li>\n<strong>nuxt:</strong> Fix router redirection on aliased pages (#4982)</li>\n<li>\n<strong>nuxt:</strong> Allow passing extraneous attrs to meta components (#5071)</li>\n<li>\n<strong>nuxt:</strong> Add default empty title to trigger <code>titleTemplate</code> (#5064)</li>\n<li>\n<strong>nuxt:</strong> Default statusCode of <code>navigateTo</code> from <code>301</code> to <code>302</code> (#5173)</li>\n<li>\n<strong>schema:</strong> Add missed types for <code>title</code>, <code>bodyAttrs</code> and <code>htmlAttrs</code> (#5184)</li>\n<li>\n<strong>nuxt:</strong> Respect <code>navigateTo</code> options using server middleware in server-side (#5145)</li>\n<li>\n<strong>nuxt:</strong> Support <code>RouterView</code> props in <code>NuxtPage</code> (#5272)</li>\n<li>\n<strong>schema, vite:</strong> Resolve <code>mode</code> config correctly (#5255)</li>\n<li>\n<strong>nuxt:</strong> Add <code>ssrContext</code> types on <code>NuxtApp</code> (#5333)</li>\n<li>\n<strong>types:</strong> Tidy types for <code>useAsyncData</code> (#5340)</li>\n<li>\n<strong>nuxt:</strong> Relax server import protections (#5355)</li>\n<li>\n<strong>nuxt:</strong> Keep route param optionality when sibling is an index (#5300)</li>\n<li>\n<strong>kit:</strong> Pass resolved path to <code>isIgnored</code> (#5375)</li>\n<li>\n<strong>vite, kit, nuxt:</strong> Generate safe variable names using knitwork (#4906)</li>\n<li>\n<strong>webpack:</strong> Respect <code>build.transpile</code> (#5043)</li>\n<li>\n<strong>nuxt:</strong> Transform extends layers within <code>node_modules</code> (#5042)</li>\n<li>\n<strong>nuxt:</strong> Throw an error when using unknown route middleware (#5323)</li>\n<li>\n<strong>nuxt:</strong> Don't debounce watcher and include layers (#5002)</li>\n<li>\n<strong>vite:</strong> Don't terminate with escaped delimiters (#5409)</li>\n<li>\n<strong>nuxt:</strong> Exclude non-cwd auto-imports and don't process all files (#5421)</li>\n<li>\n<strong>nuxt:</strong> Ignore whitespace and commas within <code>resolveComponent</code> (#5428)</li>\n<li>\n<strong>cli:</strong> Always set <code>NODE_ENV</code> value with a warning (#5417)</li>\n<li>\n<strong>nuxt:</strong> Don't add macro query to the end of id (#5413)</li>\n<li>\n<strong>webpack:</strong> Enable <code>extractCSS</code> by default (#4388)</li>\n</ul>\n<div class=\"markdown-heading\"><h3 class=\"heading-element\">💅 Refactors</h3><a id=\"user-content--refactors\" class=\"anchor\" aria-label=\"Permalink: 💅 Refactors\" href=\"#-refactors\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<ul>\n<li>\n<strong>vite, webpack, test-utils:</strong> Use caret range for <code>vue</code> peer dependency (#5190)</li>\n<li>\n<strong>cli:</strong> Provide better advice on failing clone (#5155)</li>\n<li>Fix typo and code improvements (#5344)</li>\n<li>\n<strong>cli:</strong> Improve env update message (#5430)</li>\n</ul>\n<div class=\"markdown-heading\"><h3 class=\"heading-element\">📖 Documentation</h3><a id=\"user-content--documentation\" class=\"anchor\" aria-label=\"Permalink: 📖 Documentation\" href=\"#-documentation\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<ul>\n<li>Add missing parentheses in the <code>alias</code> example (#4995)</li>\n<li>Fix typo in environment variable (#4990)</li>\n<li>\n<strong>data-fetching:</strong> Add note about difference between <code>useFetch</code> and <code>useAsyncData</code> (#4974)</li>\n<li>\n<strong>api:</strong> Improve <code>useFetch</code> docs for body type and additional <code>ohmyfetch</code> options (#4985)</li>\n<li>Minor improvements for the quick start section (#5036)</li>\n<li>\n<strong>middleware:</strong> Add <code>navigateTo</code> options (#5044)</li>\n<li>Update wording of client-side rendering explanation (#5049)</li>\n<li>Demonstrate the multiple <code>useState</code> with same key (#5059)</li>\n<li>\n<strong>config:</strong> Correct naming of <code>NUXT_APP_CDN_URL</code> environment variable (#5032)</li>\n<li>Update logo to better support light and dark mode. (#5094)</li>\n<li>Fix nuxt app guide linking to a 404 page (#5122)</li>\n<li>\n<strong>api:</strong> Add experimental <code>--prerender</code> flag to <code>nuxi build</code> command (#5112)</li>\n<li>\n<strong>api:</strong> Add <code>key</code> option for <code>useFetch</code> (#5089)</li>\n<li>\n<strong>roadmap:</strong> Nuxt content v2 release (#5129)</li>\n<li>Add <code>--no-clear</code> flag in the documentation of development server (#5197)</li>\n<li>\n<strong>deploy:</strong> Update default host for node preset (#5228)</li>\n<li>\n<strong>guide:</strong> Add use of <code>NuxtLayout</code> in <code>app.vue</code> with pages (#5225)</li>\n<li>Small typo in the \"catch-all route\" description (#5273)</li>\n<li>\n<strong>pages:</strong> Add information for typing page metadata (#5270)</li>\n<li>Add documentation for <code>titleTemplate</code> (#5093)</li>\n<li>Fix typo in component migration guide (#5284)</li>\n<li>Fix typo in programmatic navigation (#5298)</li>\n<li>Add warning against layout as root element (#5345)</li>\n<li>Update keepalive key name (#5366)</li>\n<li>\n<strong>api:</strong> Add <code>useRequestEvent</code> (#5326)</li>\n<li>\n<strong>api:</strong> Add docs for <code>useRouter</code> composable (#4949)</li>\n<li>Update cookie example with <code>defineEventHandler</code> (#5405)</li>\n<li>Update plugin provide example (#5386)</li>\n<li>Fix mdn links for 301 and 302 http status (#5416)</li>\n</ul>\n<div class=\"markdown-heading\"><h3 class=\"heading-element\">🏡 Chore</h3><a id=\"user-content--chore\" class=\"anchor\" aria-label=\"Permalink: 🏡 Chore\" href=\"#-chore\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<ul>\n<li>Clean up jsdocs (#5397)</li>\n<li>Force single version of vite (#5400)</li>\n</ul>\n<div class=\"markdown-heading\"><h3 class=\"heading-element\">❤️ New Contributors</h3><a id=\"user-content-️-new-contributors\" class=\"anchor\" aria-label=\"Permalink: ❤️ New Contributors\" href=\"#️-new-contributors\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<ul>\n<li>@jremye made their first contribution in <a href=\"https://github.com/nuxt/framework/pull/4966\">https://github.com/nuxt/framework/pull/4966</a>\n</li>\n<li>@0ri2N made their first contribution in <a href=\"https://github.com/nuxt/framework/pull/4995\">https://github.com/nuxt/framework/pull/4995</a>\n</li>\n<li>@chris-zhu made their first contribution in <a href=\"https://github.com/nuxt/framework/pull/4990\">https://github.com/nuxt/framework/pull/4990</a>\n</li>\n<li>@ArthurMJ96 made their first contribution in <a href=\"https://github.com/nuxt/framework/pull/4985\">https://github.com/nuxt/framework/pull/4985</a>\n</li>\n<li>@aifodu made their first contribution in <a href=\"https://github.com/nuxt/framework/pull/5049\">https://github.com/nuxt/framework/pull/5049</a>\n</li>\n<li>@husayt made their first contribution in <a href=\"https://github.com/nuxt/framework/pull/5059\">https://github.com/nuxt/framework/pull/5059</a>\n</li>\n<li>@srtonz made their first contribution in <a href=\"https://github.com/nuxt/framework/pull/5032\">https://github.com/nuxt/framework/pull/5032</a>\n</li>\n<li>@heychazza made their first contribution in <a href=\"https://github.com/nuxt/framework/pull/5094\">https://github.com/nuxt/framework/pull/5094</a>\n</li>\n<li>@mishushakov made their first contribution in <a href=\"https://github.com/nuxt/framework/pull/5112\">https://github.com/nuxt/framework/pull/5112</a>\n</li>\n<li>@ashgo-x made their first contribution in <a href=\"https://github.com/nuxt/framework/pull/5187\">https://github.com/nuxt/framework/pull/5187</a>\n</li>\n<li>@SirMishaa made their first contribution in <a href=\"https://github.com/nuxt/framework/pull/5197\">https://github.com/nuxt/framework/pull/5197</a>\n</li>\n<li>@cawa-93 made their first contribution in <a href=\"https://github.com/nuxt/framework/pull/5184\">https://github.com/nuxt/framework/pull/5184</a>\n</li>\n<li>@JoseeWouters made their first contribution in <a href=\"https://github.com/nuxt/framework/pull/5225\">https://github.com/nuxt/framework/pull/5225</a>\n</li>\n<li>@mael-queau made their first contribution in <a href=\"https://github.com/nuxt/framework/pull/5273\">https://github.com/nuxt/framework/pull/5273</a>\n</li>\n<li>@AcelisWeaven made their first contribution in <a href=\"https://github.com/nuxt/framework/pull/5284\">https://github.com/nuxt/framework/pull/5284</a>\n</li>\n<li>@nathanchase made their first contribution in <a href=\"https://github.com/nuxt/framework/pull/5298\">https://github.com/nuxt/framework/pull/5298</a>\n</li>\n<li>@Zalexios made their first contribution in <a href=\"https://github.com/nuxt/framework/pull/5386\">https://github.com/nuxt/framework/pull/5386</a>\n</li>\n<li>@MaximKing1 made their first contribution in <a href=\"https://github.com/nuxt/framework/pull/5416\">https://github.com/nuxt/framework/pull/5416</a>\n</li>\n<li>@dotoleeoak made their first contribution in <a href=\"https://github.com/nuxt/framework/pull/5413\">https://github.com/nuxt/framework/pull/5413</a>\n</li>\n<li>@ennioVisco made their first contribution in <a href=\"https://github.com/nuxt/framework/pull/5430\">https://github.com/nuxt/framework/pull/5430</a>\n</li>\n</ul>\n","assets":[]},{"id":66451532,"tag":"v3.0.0-rc.3","author":"pi0","name":"","draft":false,"prerelease":false,"createdAt":"2022-05-10T08:58:29Z","publishedAt":"2022-05-10T09:02:09Z","markdown":"### 🚀 Enhancements\r\n\r\n\r\n#### Nuxt, Kit\r\n\r\n  - #4850 Support `serverHandlers`/`devServerHandlers` shortcuts to register custom handlers\r\n\r\n#### Nuxt\r\n\r\n  - ⚠️  #4837 Upgrade `nitropack` to `0.4.x`\r\n  - #4834 Custom include option\r\n\r\n### 🩹 Fixes\r\n\r\n#### Nuxt\r\n\r\n  - #4770 Use `router.resolve` to resolve initial url\r\n  - #4781 Ensure url is not empty string\r\n  - #4839 Clear errors after navigation\r\n  - #4842 Check if default slot is provided before calling it\r\n  - #4841 Normalize window location for universal router\r\n  - #4791 Await asyncData if `ssr: false`\r\n  - #4851 Add missing import to client only wrapper\r\n  - #4857 Avoid redirect with different encoding and trailing slash\r\n\r\n#### Schema\r\n\r\n  - #4772 Exclude `vite` from `DeepPartial`\r\n  - #4849 Add back `PublicRuntimeConfig` interface for augmentation\r\n\r\n#### Vite\r\n\r\n  - #4844 Use `buildAssetsURL` for dynamic imports\r\n  - #4822 Ignore virtual imports that aren't in vfs\r\n\r\n### 💅 Refactors\r\n\r\n\r\n#### Nuxt\r\n\r\n  - #4853 Cleanup renderer entry\r\n\r\n### 📖 Documentation\r\n\r\n\r\n#### Data-fetching\r\n\r\n  - #4824 Fix and improve data-fetching example\r\n\r\n#### API\r\n\r\n  - #4776 Document `useRoute` composable\r\n  - #4870 Fix api examples\r\n\r\n#### General\r\n\r\n  - #4831 Fix example syntax for runtime hook plugin \r\n\r\n### ❤️  New Contributors\r\n\r\n* @huang-julien made their first contribution in https://github.com/nuxt/framework/pull/4830\r\n* @jontybrook made their first contribution in https://github.com/nuxt/framework/pull/4831\r\n* @Krutie made their first contribution in https://github.com/nuxt/framework/pull/4776\r\n* @salimabsi made their first contribution in https://github.com/nuxt/framework/pull/4824\r\n* @derz made their first contribution in https://github.com/nuxt/framework/pull/4822\r\n","html":"<div class=\"markdown-heading\"><h3 class=\"heading-element\">🚀 Enhancements</h3><a id=\"user-content--enhancements\" class=\"anchor\" aria-label=\"Permalink: 🚀 Enhancements\" href=\"#-enhancements\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<div class=\"markdown-heading\"><h4 class=\"heading-element\">Nuxt, Kit</h4><a id=\"user-content-nuxt-kit\" class=\"anchor\" aria-label=\"Permalink: Nuxt, Kit\" href=\"#nuxt-kit\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<ul>\n<li>#4850 Support <code>serverHandlers</code>/<code>devServerHandlers</code> shortcuts to register custom handlers</li>\n</ul>\n<div class=\"markdown-heading\"><h4 class=\"heading-element\">Nuxt</h4><a id=\"user-content-nuxt\" class=\"anchor\" aria-label=\"Permalink: Nuxt\" href=\"#nuxt\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<ul>\n<li><g-emoji class=\"g-emoji\" alias=\"warning\">⚠️</g-emoji>  #4837 Upgrade <code>nitropack</code> to <code>0.4.x</code>\n</li>\n<li>#4834 Custom include option</li>\n</ul>\n<div class=\"markdown-heading\"><h3 class=\"heading-element\">🩹 Fixes</h3><a id=\"user-content--fixes\" class=\"anchor\" aria-label=\"Permalink: 🩹 Fixes\" href=\"#-fixes\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<div class=\"markdown-heading\"><h4 class=\"heading-element\">Nuxt</h4><a id=\"user-content-nuxt-1\" class=\"anchor\" aria-label=\"Permalink: Nuxt\" href=\"#nuxt-1\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<ul>\n<li>#4770 Use <code>router.resolve</code> to resolve initial url</li>\n<li>#4781 Ensure url is not empty string</li>\n<li>#4839 Clear errors after navigation</li>\n<li>#4842 Check if default slot is provided before calling it</li>\n<li>#4841 Normalize window location for universal router</li>\n<li>#4791 Await asyncData if <code>ssr: false</code>\n</li>\n<li>#4851 Add missing import to client only wrapper</li>\n<li>#4857 Avoid redirect with different encoding and trailing slash</li>\n</ul>\n<div class=\"markdown-heading\"><h4 class=\"heading-element\">Schema</h4><a id=\"user-content-schema\" class=\"anchor\" aria-label=\"Permalink: Schema\" href=\"#schema\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<ul>\n<li>#4772 Exclude <code>vite</code> from <code>DeepPartial</code>\n</li>\n<li>#4849 Add back <code>PublicRuntimeConfig</code> interface for augmentation</li>\n</ul>\n<div class=\"markdown-heading\"><h4 class=\"heading-element\">Vite</h4><a id=\"user-content-vite\" class=\"anchor\" aria-label=\"Permalink: Vite\" href=\"#vite\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<ul>\n<li>#4844 Use <code>buildAssetsURL</code> for dynamic imports</li>\n<li>#4822 Ignore virtual imports that aren't in vfs</li>\n</ul>\n<div class=\"markdown-heading\"><h3 class=\"heading-element\">💅 Refactors</h3><a id=\"user-content--refactors\" class=\"anchor\" aria-label=\"Permalink: 💅 Refactors\" href=\"#-refactors\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<div class=\"markdown-heading\"><h4 class=\"heading-element\">Nuxt</h4><a id=\"user-content-nuxt-2\" class=\"anchor\" aria-label=\"Permalink: Nuxt\" href=\"#nuxt-2\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<ul>\n<li>#4853 Cleanup renderer entry</li>\n</ul>\n<div class=\"markdown-heading\"><h3 class=\"heading-element\">📖 Documentation</h3><a id=\"user-content--documentation\" class=\"anchor\" aria-label=\"Permalink: 📖 Documentation\" href=\"#-documentation\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<div class=\"markdown-heading\"><h4 class=\"heading-element\">Data-fetching</h4><a id=\"user-content-data-fetching\" class=\"anchor\" aria-label=\"Permalink: Data-fetching\" href=\"#data-fetching\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<ul>\n<li>#4824 Fix and improve data-fetching example</li>\n</ul>\n<div class=\"markdown-heading\"><h4 class=\"heading-element\">API</h4><a id=\"user-content-api\" class=\"anchor\" aria-label=\"Permalink: API\" href=\"#api\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<ul>\n<li>#4776 Document <code>useRoute</code> composable</li>\n<li>#4870 Fix api examples</li>\n</ul>\n<div class=\"markdown-heading\"><h4 class=\"heading-element\">General</h4><a id=\"user-content-general\" class=\"anchor\" aria-label=\"Permalink: General\" href=\"#general\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<ul>\n<li>#4831 Fix example syntax for runtime hook plugin</li>\n</ul>\n<div class=\"markdown-heading\"><h3 class=\"heading-element\">❤️  New Contributors</h3><a id=\"user-content-️--new-contributors\" class=\"anchor\" aria-label=\"Permalink: ❤️  New Contributors\" href=\"#️--new-contributors\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<ul>\n<li>@huang-julien made their first contribution in <a href=\"https://github.com/nuxt/framework/pull/4830\">https://github.com/nuxt/framework/pull/4830</a>\n</li>\n<li>@jontybrook made their first contribution in <a href=\"https://github.com/nuxt/framework/pull/4831\">https://github.com/nuxt/framework/pull/4831</a>\n</li>\n<li>@Krutie made their first contribution in <a href=\"https://github.com/nuxt/framework/pull/4776\">https://github.com/nuxt/framework/pull/4776</a>\n</li>\n<li>@salimabsi made their first contribution in <a href=\"https://github.com/nuxt/framework/pull/4824\">https://github.com/nuxt/framework/pull/4824</a>\n</li>\n<li>@derz made their first contribution in <a href=\"https://github.com/nuxt/framework/pull/4822\">https://github.com/nuxt/framework/pull/4822</a>\n</li>\n</ul>\n","assets":[]},{"id":65844660,"tag":"v3.0.0-rc.2","author":"pi0","name":"","draft":false,"prerelease":false,"createdAt":"2022-05-02T20:47:05Z","publishedAt":"2022-05-02T20:50:08Z","markdown":"### 🩹 Fixes\r\n\r\n#### Nuxt\r\n\r\n  - #4491 Await for `router.push` on ssr\r\n  - #4626 Cleanup auto imports on regenerate\r\n  - #4590 Warn to provide a key for `useFetch` with `transform` option\r\n  - #4677 Use suspense for child pages on client-side navigation\r\n  - #4666 Mark config head as non-reactive\r\n  - #4210 Improve error types for `useAsyncData` and `useFetch`\r\n  - #4645 Process middleware after plugins\r\n  - #4755 Preserve `error.data` in response\r\n\r\n#### CLI\r\n\r\n  - #4595 Don't strip file extensions from dirs in `tsconfig`\r\n  - #4685 Typo in init message\r\n  - #4612 Improve `nuxi init` output\r\n\r\n#### Schema\r\n\r\n  - #4695 Decrease recursion on `DeepPartial`\r\n\r\n#### Vite\r\n\r\n  - #4512 Transform virtual templates\r\n  - #4442 Use single regex to reduce risk of collisions\r\n  - #4596 Don't match across newlines\r\n\r\n\r\n### ✨ Features\r\n\r\n\r\n#### Nitro\r\n\r\n  - #4304 Add `nitro:build:before` hook\r\n\r\n#### Pages\r\n\r\n  - ⚠️  #4537 Explicitly allow optional params with `[[`\r\n\r\n#### General\r\n\r\n  - #4509 Allow disabling sourcemap generation\r\n\r\n\r\n### 📖 Documentation\r\n\r\n\r\n#### General\r\n\r\n  - #4502 Update migration guide\r\n  - #4506 Simplify example of Head components\r\n  - #4519 Remove duplicate entry for `default` option\r\n  - #4510 Update stackblitz links\r\n  - #4485 Fix 'alias' usage\r\n  - #4499 Improve netlify deployment\r\n  - #4401 Improve server routes guide\r\n  - #4573 Update environment variable in example\r\n  - #4593 Add layout to match custom header example\r\n  - #4603 Fix some minor typos\r\n  - #4608 Fix typo\r\n  - #4617 Fix typo\r\n  - #4616 Make titleTemplate function form example clearer\r\n  - #4640 Add note and banner about edge channel\r\n  - #4653 Fix edge alert syntax\r\n  - #4679 Fix typos\r\n  - #4675 Add notes about auto imports from `composables/` directory\r\n  - #4715 Fix incorrect function declaration in composables\r\n  - #4714 Add note that `.env` is not read in production\r\n  - #4742 Make `useFetch` example consistent with others\r\n\r\n#### Features\r\n\r\n  - #4563 Complete assets page\r\n\r\n#### Typescript\r\n\r\n  - #4660 Typos\r\n\r\n#### Migration\r\n\r\n  - #4642 Update to use new `runtimeConfig`\r\n\r\n#### Readme\r\n\r\n  - #4628 Fix typo\r\n\r\n#### Concepts\r\n\r\n  - #4601 Change phrasing\r\n\r\n#### API\r\n\r\n  - #4549 Fix `useAsyncData` example\r\n\r\n\r\n### 🏡 Chore\r\n\r\n\r\n#### General\r\n\r\n  - #4453 Setup IssueUp\r\n  - #4664 Enable typecheck ci for packages\r\n\r\n#### Docs\r\n\r\n  - #4577 Update social card\r\n\r\n### ⚠️ Breaking Changes\r\n\r\n- #4537 Explicitly allow optional params with `[[`\r\n\r\nIf you are relying on `[slug]` at the end of a route to generate an optional parameter, you will need to rewrite it as `[[slug]]`.\r\n\r\n### ❤️  New Contributors\r\n\r\n* @Vincent-Risk0 made their first contribution in https://github.com/nuxt/framework/pull/4502\r\n* @Benbinbin made their first contribution in https://github.com/nuxt/framework/pull/4519\r\n* @cinob made their first contribution in https://github.com/nuxt/framework/pull/4485\r\n* @klevron made their first contribution in https://github.com/nuxt/framework/pull/4549\r\n* @sammce made their first contribution in https://github.com/nuxt/framework/pull/4601\r\n* @dantownsend made their first contribution in https://github.com/nuxt/framework/pull/4603\r\n* @UzzolX made their first contribution in https://github.com/nuxt/framework/pull/4608\r\n* @riddla made their first contribution in https://github.com/nuxt/framework/pull/4616\r\n* @wireta made their first contribution in https://github.com/nuxt/framework/pull/4628\r\n* @gui-desan made their first contribution in https://github.com/nuxt/framework/pull/4653\r\n* @sanscheese made their first contribution in https://github.com/nuxt/framework/pull/4685\r\n* @sr2echa made their first contribution in https://github.com/nuxt/framework/pull/4679\r\n* @Kapcash made their first contribution in https://github.com/nuxt/framework/pull/4675\r\n* @m0ksem made their first contribution in https://github.com/nuxt/framework/pull/4715\r\n* @max-programming made their first contribution in https://github.com/nuxt/framework/pull/4612\r\n* @zzxswl made their first contribution in https://github.com/nuxt/framework/pull/4742\r\n* @Matix-Media made their first contribution in https://github.com/nuxt/framework/pull/4755\r\n","html":"<div class=\"markdown-heading\"><h3 class=\"heading-element\">🩹 Fixes</h3><a id=\"user-content--fixes\" class=\"anchor\" aria-label=\"Permalink: 🩹 Fixes\" href=\"#-fixes\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<div class=\"markdown-heading\"><h4 class=\"heading-element\">Nuxt</h4><a id=\"user-content-nuxt\" class=\"anchor\" aria-label=\"Permalink: Nuxt\" href=\"#nuxt\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<ul>\n<li>#4491 Await for <code>router.push</code> on ssr</li>\n<li>#4626 Cleanup auto imports on regenerate</li>\n<li>#4590 Warn to provide a key for <code>useFetch</code> with <code>transform</code> option</li>\n<li>#4677 Use suspense for child pages on client-side navigation</li>\n<li>#4666 Mark config head as non-reactive</li>\n<li>#4210 Improve error types for <code>useAsyncData</code> and <code>useFetch</code>\n</li>\n<li>#4645 Process middleware after plugins</li>\n<li>#4755 Preserve <code>error.data</code> in response</li>\n</ul>\n<div class=\"markdown-heading\"><h4 class=\"heading-element\">CLI</h4><a id=\"user-content-cli\" class=\"anchor\" aria-label=\"Permalink: CLI\" href=\"#cli\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<ul>\n<li>#4595 Don't strip file extensions from dirs in <code>tsconfig</code>\n</li>\n<li>#4685 Typo in init message</li>\n<li>#4612 Improve <code>nuxi init</code> output</li>\n</ul>\n<div class=\"markdown-heading\"><h4 class=\"heading-element\">Schema</h4><a id=\"user-content-schema\" class=\"anchor\" aria-label=\"Permalink: Schema\" href=\"#schema\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<ul>\n<li>#4695 Decrease recursion on <code>DeepPartial</code>\n</li>\n</ul>\n<div class=\"markdown-heading\"><h4 class=\"heading-element\">Vite</h4><a id=\"user-content-vite\" class=\"anchor\" aria-label=\"Permalink: Vite\" href=\"#vite\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<ul>\n<li>#4512 Transform virtual templates</li>\n<li>#4442 Use single regex to reduce risk of collisions</li>\n<li>#4596 Don't match across newlines</li>\n</ul>\n<div class=\"markdown-heading\"><h3 class=\"heading-element\">✨ Features</h3><a id=\"user-content--features\" class=\"anchor\" aria-label=\"Permalink: ✨ Features\" href=\"#-features\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<div class=\"markdown-heading\"><h4 class=\"heading-element\">Nitro</h4><a id=\"user-content-nitro\" class=\"anchor\" aria-label=\"Permalink: Nitro\" href=\"#nitro\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<ul>\n<li>#4304 Add <code>nitro:build:before</code> hook</li>\n</ul>\n<div class=\"markdown-heading\"><h4 class=\"heading-element\">Pages</h4><a id=\"user-content-pages\" class=\"anchor\" aria-label=\"Permalink: Pages\" href=\"#pages\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<ul>\n<li><g-emoji class=\"g-emoji\" alias=\"warning\">⚠️</g-emoji>  #4537 Explicitly allow optional params with <code>[[</code>\n</li>\n</ul>\n<div class=\"markdown-heading\"><h4 class=\"heading-element\">General</h4><a id=\"user-content-general\" class=\"anchor\" aria-label=\"Permalink: General\" href=\"#general\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<ul>\n<li>#4509 Allow disabling sourcemap generation</li>\n</ul>\n<div class=\"markdown-heading\"><h3 class=\"heading-element\">📖 Documentation</h3><a id=\"user-content--documentation\" class=\"anchor\" aria-label=\"Permalink: 📖 Documentation\" href=\"#-documentation\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<div class=\"markdown-heading\"><h4 class=\"heading-element\">General</h4><a id=\"user-content-general-1\" class=\"anchor\" aria-label=\"Permalink: General\" href=\"#general-1\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<ul>\n<li>#4502 Update migration guide</li>\n<li>#4506 Simplify example of Head components</li>\n<li>#4519 Remove duplicate entry for <code>default</code> option</li>\n<li>#4510 Update stackblitz links</li>\n<li>#4485 Fix 'alias' usage</li>\n<li>#4499 Improve netlify deployment</li>\n<li>#4401 Improve server routes guide</li>\n<li>#4573 Update environment variable in example</li>\n<li>#4593 Add layout to match custom header example</li>\n<li>#4603 Fix some minor typos</li>\n<li>#4608 Fix typo</li>\n<li>#4617 Fix typo</li>\n<li>#4616 Make titleTemplate function form example clearer</li>\n<li>#4640 Add note and banner about edge channel</li>\n<li>#4653 Fix edge alert syntax</li>\n<li>#4679 Fix typos</li>\n<li>#4675 Add notes about auto imports from <code>composables/</code> directory</li>\n<li>#4715 Fix incorrect function declaration in composables</li>\n<li>#4714 Add note that <code>.env</code> is not read in production</li>\n<li>#4742 Make <code>useFetch</code> example consistent with others</li>\n</ul>\n<div class=\"markdown-heading\"><h4 class=\"heading-element\">Features</h4><a id=\"user-content-features\" class=\"anchor\" aria-label=\"Permalink: Features\" href=\"#features\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<ul>\n<li>#4563 Complete assets page</li>\n</ul>\n<div class=\"markdown-heading\"><h4 class=\"heading-element\">Typescript</h4><a id=\"user-content-typescript\" class=\"anchor\" aria-label=\"Permalink: Typescript\" href=\"#typescript\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<ul>\n<li>#4660 Typos</li>\n</ul>\n<div class=\"markdown-heading\"><h4 class=\"heading-element\">Migration</h4><a id=\"user-content-migration\" class=\"anchor\" aria-label=\"Permalink: Migration\" href=\"#migration\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<ul>\n<li>#4642 Update to use new <code>runtimeConfig</code>\n</li>\n</ul>\n<div class=\"markdown-heading\"><h4 class=\"heading-element\">Readme</h4><a id=\"user-content-readme\" class=\"anchor\" aria-label=\"Permalink: Readme\" href=\"#readme\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<ul>\n<li>#4628 Fix typo</li>\n</ul>\n<div class=\"markdown-heading\"><h4 class=\"heading-element\">Concepts</h4><a id=\"user-content-concepts\" class=\"anchor\" aria-label=\"Permalink: Concepts\" href=\"#concepts\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<ul>\n<li>#4601 Change phrasing</li>\n</ul>\n<div class=\"markdown-heading\"><h4 class=\"heading-element\">API</h4><a id=\"user-content-api\" class=\"anchor\" aria-label=\"Permalink: API\" href=\"#api\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<ul>\n<li>#4549 Fix <code>useAsyncData</code> example</li>\n</ul>\n<div class=\"markdown-heading\"><h3 class=\"heading-element\">🏡 Chore</h3><a id=\"user-content--chore\" class=\"anchor\" aria-label=\"Permalink: 🏡 Chore\" href=\"#-chore\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<div class=\"markdown-heading\"><h4 class=\"heading-element\">General</h4><a id=\"user-content-general-2\" class=\"anchor\" aria-label=\"Permalink: General\" href=\"#general-2\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<ul>\n<li>#4453 Setup IssueUp</li>\n<li>#4664 Enable typecheck ci for packages</li>\n</ul>\n<div class=\"markdown-heading\"><h4 class=\"heading-element\">Docs</h4><a id=\"user-content-docs\" class=\"anchor\" aria-label=\"Permalink: Docs\" href=\"#docs\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<ul>\n<li>#4577 Update social card</li>\n</ul>\n<div class=\"markdown-heading\"><h3 class=\"heading-element\"><g-emoji class=\"g-emoji\" alias=\"warning\">⚠️</g-emoji> Breaking Changes</h3><a id=\"user-content-️-breaking-changes\" class=\"anchor\" aria-label=\"Permalink: ⚠️ Breaking Changes\" href=\"#️-breaking-changes\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<ul>\n<li>#4537 Explicitly allow optional params with <code>[[</code>\n</li>\n</ul>\n<p>If you are relying on <code>[slug]</code> at the end of a route to generate an optional parameter, you will need to rewrite it as <code>[[slug]]</code>.</p>\n<div class=\"markdown-heading\"><h3 class=\"heading-element\">❤️  New Contributors</h3><a id=\"user-content-️--new-contributors\" class=\"anchor\" aria-label=\"Permalink: ❤️  New Contributors\" href=\"#️--new-contributors\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<ul>\n<li>@Vincent-Risk0 made their first contribution in <a href=\"https://github.com/nuxt/framework/pull/4502\">https://github.com/nuxt/framework/pull/4502</a>\n</li>\n<li>@Benbinbin made their first contribution in <a href=\"https://github.com/nuxt/framework/pull/4519\">https://github.com/nuxt/framework/pull/4519</a>\n</li>\n<li>@cinob made their first contribution in <a href=\"https://github.com/nuxt/framework/pull/4485\">https://github.com/nuxt/framework/pull/4485</a>\n</li>\n<li>@klevron made their first contribution in <a href=\"https://github.com/nuxt/framework/pull/4549\">https://github.com/nuxt/framework/pull/4549</a>\n</li>\n<li>@sammce made their first contribution in <a href=\"https://github.com/nuxt/framework/pull/4601\">https://github.com/nuxt/framework/pull/4601</a>\n</li>\n<li>@dantownsend made their first contribution in <a href=\"https://github.com/nuxt/framework/pull/4603\">https://github.com/nuxt/framework/pull/4603</a>\n</li>\n<li>@UzzolX made their first contribution in <a href=\"https://github.com/nuxt/framework/pull/4608\">https://github.com/nuxt/framework/pull/4608</a>\n</li>\n<li>@riddla made their first contribution in <a href=\"https://github.com/nuxt/framework/pull/4616\">https://github.com/nuxt/framework/pull/4616</a>\n</li>\n<li>@wireta made their first contribution in <a href=\"https://github.com/nuxt/framework/pull/4628\">https://github.com/nuxt/framework/pull/4628</a>\n</li>\n<li>@gui-desan made their first contribution in <a href=\"https://github.com/nuxt/framework/pull/4653\">https://github.com/nuxt/framework/pull/4653</a>\n</li>\n<li>@sanscheese made their first contribution in <a href=\"https://github.com/nuxt/framework/pull/4685\">https://github.com/nuxt/framework/pull/4685</a>\n</li>\n<li>@sr2echa made their first contribution in <a href=\"https://github.com/nuxt/framework/pull/4679\">https://github.com/nuxt/framework/pull/4679</a>\n</li>\n<li>@Kapcash made their first contribution in <a href=\"https://github.com/nuxt/framework/pull/4675\">https://github.com/nuxt/framework/pull/4675</a>\n</li>\n<li>@m0ksem made their first contribution in <a href=\"https://github.com/nuxt/framework/pull/4715\">https://github.com/nuxt/framework/pull/4715</a>\n</li>\n<li>@max-programming made their first contribution in <a href=\"https://github.com/nuxt/framework/pull/4612\">https://github.com/nuxt/framework/pull/4612</a>\n</li>\n<li>@zzxswl made their first contribution in <a href=\"https://github.com/nuxt/framework/pull/4742\">https://github.com/nuxt/framework/pull/4742</a>\n</li>\n<li>@Matix-Media made their first contribution in <a href=\"https://github.com/nuxt/framework/pull/4755\">https://github.com/nuxt/framework/pull/4755</a>\n</li>\n</ul>\n","assets":[]},{"id":64851289,"tag":"v3.0.0-rc.1","author":"pi0","name":"","draft":false,"prerelease":false,"createdAt":"2022-04-20T21:09:37Z","publishedAt":"2022-04-20T21:10:13Z","markdown":"#  🐣  `3.0.0-rc.1` [\"Mount Hope\"](https://en.wikipedia.org/wiki/Mount_Hope_(Palmer_Land))\r\n\r\n## Release Announcement\r\n\r\n🚀 Check out the [Announcing Nuxt 3 Release Candidate](https://nuxtjs.org/announcements/nuxt3-rc) for more information about this release!\r\n\r\n## Migrating from `nuxt3` edge releases\r\n\r\nIf you are already a beta tester of nuxt using `nuxt3` package, please follow the steps below to use RC.1:\r\n\r\n1. Check out [Breaking changes tracker](https://github.com/nuxt/framework/discussions/2883) to apply any of the previous possible breaking changes on edge-channel.\r\n\r\n1. Remove `.nuxt`, `package.lock.json`, `yarn.lock` and `node_modules`\r\n\r\n1. Update `nuxt.config` to import `defineNuxtConfig` from `nuxt` instead of `nuxt3`:\r\n\r\n```diff\r\n- import { defineNuxtConfig } from 'nuxt3'\r\n+ import { defineNuxtConfig } from 'nuxt'\r\n\r\nexport default defineNuxtConfig({ ... })\r\n```\r\n\r\n1. Update `package.json`\r\n\r\n```diff\r\n{\r\n  \"devDependencies\": {\r\n-    \"nuxt3\": \"latest\"\r\n+    \"nuxt\": \"^3.0.0-rc.1\"\r\n  }\r\n}\r\n```\r\n\r\nAlternatively, you can use `\"nuxt\": \"npm:nuxt3@latest\"` to keep using the latest edge releases of Nuxt 3.\r\n\r\n## Migration for module authors\r\n\r\nFor Nuxt 3 modules created by new [module-builder](https://github.com/nuxt/module-builder) toolchain, also update `@nuxt/kit` dependency to use RC.1 in `package.json`:\r\n\r\n```diff\r\n{\r\n  \"dependencies\": {\r\n-    \"@nuxt/kit\": \"npm:@nuxt/kit-edge@latest\"\r\n+    \"@nuxt/kit\": \"^3.0.0-rc.1\"\r\n  }\r\n}\r\n```\r\n","html":"<div class=\"markdown-heading\"><h1 class=\"heading-element\">🐣  <code>3.0.0-rc.1</code> <a href=\"https://en.wikipedia.org/wiki/Mount_Hope_(Palmer_Land)\" rel=\"nofollow\">\"Mount Hope\"</a>\n</h1><a id=\"user-content---300-rc1-mount-hope\" class=\"anchor\" aria-label=\"Permalink: 🐣  3.0.0-rc.1&quot;Mount Hope&quot;\" href=\"#--300-rc1-mount-hope\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<div class=\"markdown-heading\"><h2 class=\"heading-element\">Release Announcement</h2><a id=\"user-content-release-announcement\" class=\"anchor\" aria-label=\"Permalink: Release Announcement\" href=\"#release-announcement\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<p>🚀 Check out the <a href=\"https://nuxtjs.org/announcements/nuxt3-rc\" rel=\"nofollow\">Announcing Nuxt 3 Release Candidate</a> for more information about this release!</p>\n<div class=\"markdown-heading\"><h2 class=\"heading-element\">Migrating from <code>nuxt3</code> edge releases</h2><a id=\"user-content-migrating-from-nuxt3-edge-releases\" class=\"anchor\" aria-label=\"Permalink: Migrating from nuxt3 edge releases\" href=\"#migrating-from-nuxt3-edge-releases\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<p>If you are already a beta tester of nuxt using <code>nuxt3</code> package, please follow the steps below to use RC.1:</p>\n<ol>\n<li>\n<p>Check out <a href=\"https://github.com/nuxt/framework/discussions/2883\">Breaking changes tracker</a> to apply any of the previous possible breaking changes on edge-channel.</p>\n</li>\n<li>\n<p>Remove <code>.nuxt</code>, <code>package.lock.json</code>, <code>yarn.lock</code> and <code>node_modules</code></p>\n</li>\n<li>\n<p>Update <code>nuxt.config</code> to import <code>defineNuxtConfig</code> from <code>nuxt</code> instead of <code>nuxt3</code>:</p>\n</li>\n</ol>\n<div class=\"highlight highlight-source-diff\"><pre><span class=\"pl-md\"><span class=\"pl-md\">-</span> import { defineNuxtConfig } from 'nuxt3'</span>\n<span class=\"pl-mi1\"><span class=\"pl-mi1\">+</span> import { defineNuxtConfig } from 'nuxt'</span>\n\nexport default defineNuxtConfig({ ... })</pre></div>\n<ol>\n<li>Update <code>package.json</code>\n</li>\n</ol>\n<div class=\"highlight highlight-source-diff\"><pre>{\n  \"devDependencies\": {\n<span class=\"pl-md\"><span class=\"pl-md\">-</span>    \"nuxt3\": \"latest\"</span>\n<span class=\"pl-mi1\"><span class=\"pl-mi1\">+</span>    \"nuxt\": \"^3.0.0-rc.1\"</span>\n  }\n}</pre></div>\n<p>Alternatively, you can use <code>\"nuxt\": \"npm:nuxt3@latest\"</code> to keep using the latest edge releases of Nuxt 3.</p>\n<div class=\"markdown-heading\"><h2 class=\"heading-element\">Migration for module authors</h2><a id=\"user-content-migration-for-module-authors\" class=\"anchor\" aria-label=\"Permalink: Migration for module authors\" href=\"#migration-for-module-authors\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<p>For Nuxt 3 modules created by new <a href=\"https://github.com/nuxt/module-builder\">module-builder</a> toolchain, also update <code>@nuxt/kit</code> dependency to use RC.1 in <code>package.json</code>:</p>\n<div class=\"highlight highlight-source-diff\"><pre>{\n  \"dependencies\": {\n<span class=\"pl-md\"><span class=\"pl-md\">-</span>    \"@nuxt/kit\": \"npm:@nuxt/kit-edge@latest\"</span>\n<span class=\"pl-mi1\"><span class=\"pl-mi1\">+</span>    \"@nuxt/kit\": \"^3.0.0-rc.1\"</span>\n  }\n}</pre></div>\n","assets":[]}]}