Releases: nuxt/framework
v3.0.0-rc.5
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 β¨
Feedback about the release: Join the discussion
See all changes: v3.0.0-rc.4...v3.0.0-rc.5
β οΈ Breaking Changes
This release contains slight breaking changes. Please check the linked pull requests for notes.
- auto-import: Unwrap auto imports in SFC templates (#5573)
- nuxt: Support universal global middleware (#5038)
- nuxt: Remove legacy app context (#5630)
π Enhancements
- kit: Allow
addServerHandler
to use method suffix of the file path (#5465) - kit: Support client and server flags for
addVitePlugin
(#5560) - auto-import:
β οΈ Unwrap auto imports in SFC templates (#5573) - kit: Add
addLayout
utility (#5537) - nuxt:
β οΈ Support global middleware without router (#5038) - nuxt: Allow passing custom fetch options to
useFetch
(#5660) - nuxt: Prerender all pages by default (#5709)
- nuxt: Tree-shake client and server-only composables (#5749)
- nuxt: Automatically generate unique keys for keyed composables (#4955)
- nuxt: Support
custom
prop for<nuxt-link>
(#4249) - nuxt: Add
<NuxtLoadingIndicator>
component [WIP] (#5121)
π₯ Performance
- nuxt:
β οΈ Remove legacy app context (#5630)
π©Ή Fixes
- schema: Add types for
vite:
hooks (#5472) - nuxt: Normalize string transpile paths for windows (#5461)
- nuxt: Prefer unctx context over
getCurrentInstance
foruseNuxtApp
(#5456) - vite: Add typecheck to vite plugins (#5464)
- vite: Disable HMR in build (#5505)
- schema, postcss:
cssnano
is enabled if not dev (#5583) - vite: Do not watch ignored pathes (#5632)
- vite-node: On-demand manifest (#5017)
- nuxt: Pass attrs and props to client-only components (#5668)
- kit: Allow adding server-only and client-only components separately (#5686)
- webpack: Transpile
vue-demi
(#5721) - nuxt:
useRequestHeaders
type should allow forundefined
values (#5748) - nuxt: Update
useFetch
key warning to include any function or blob (#5710) - vite: Do not inline dynamic imports in server (#5506)
- nuxt: Handle
undefined
when applying defaults foruseAsyncData
(8d2f805) - vite: Fix
vite-node
circular reference (#5764) - nuxt: Use virtual server stub for
ssr: false
(#5773) - nuxt: Don't return stub function from tree-shaken composables (#5786)
- test-utils: Update vitest import path with
.mjs
(#5817) - nuxt: Only tree-shake composables on their own lines (#5850)
- nuxt: Extend nitro routes instead of overriding (#5828)
- cli: Show base url in terminal (#5337)
- nuxt: Add import protection to nitro config (#5847)
- nuxt: Replace
process.dev
in nitro bundle (#5852) - nuxt: Warn about legacy and invalid plugins (#5857)
- nuxt: Fix issues with
vue-router
and@vue/devtools-api
bundling (#5874) - vite: Close vite watcher before building (#5875)
π Documentation
- Update roadmap (#5443)
- Rewrite note wording (#5462)
- Align value for defaulting the page's title with type declaration (#5447)
- Fix link to
nuxt/image
issue (#5490) - Add notes about reporting security issues (#4895)
- testing: Fix async/await (#5539)
- api: Add watch parameter in
useFetch
options (#5562) - examples: Rename
hello.ts
to[...hello].ts
(#5261) - Update usage about runtime config and environment variables (#5569)
- Update
pnpm
usage (#5597) - Minor wording improvements (#5622)
- Replace invalid link to composables (#5611)
- Rework the layout section (#5118)
- api: Add docs for
<NuxtPage>
component (#5591) - Clarify that
definePageMeta
only works in the pages directory (#5663) - Update vuejs-development (#5679)
- Add full stop (#5680)
- api: Update commands with new
NODE_ENV
behavior (#5739) - plugins: Add directive example (#5667)
- Fix Vite check for Nuxt 3 (#5768)
useFetch
uses isomorphic$fetch
(#5769)- Add content directory to directory-structure (#5755)
- api: Add
anavigateTo
docs (#5701) - Fix link to
NuxtLoadingIndicator
component src (#5776) - Use
defineLazyHandler
in wasm example (#5797) - Use
toUTCString
inuseAsyncData
example (#5798) - Add missing dot (#5815)
- Update
nuxt-link
(#5819) - Lint whitespaces (#5633)
- Fix typo (#5865)
- Fix typo (#5863)
β€οΈ Contributors
- Ahad Birang
- Alexander Lichter
- AnPineau
- Anders SΓΈgaard
- Anthony Fu
- Bob Olde Hampsink
- Bot08
- ClΓ©ment Ollivier
- Cupid Valentine
- Damian
- Daniel Roe
- Donatelloraphael
- Francisco Buceta
- Haruaki OTAKE
- Ibrahim Abdullahi Aliyu
- Julien Huang
- Krutie Patel
- Mourad EL CADI
- Mrauhu
- Nestor Vera
- Paranoid
- Pooya Parsa
- Qin Guan
- Sumiren
- SΓ©bastien Chopin
- Thibault Vlacich
- Thomas Jowsey
- Vasiliy
- Xanlantos
- Yuki Inoue
- δΊδΈθ£θ²΄
v3.0.0-rc.4
See all changes: v3.0.0-rc.3...v3.0.0-rc.4
This release contains commutative enhancements from RC.3. Thanks to all of the contributors to the code and documentation π
π Enhancements
- vite: Replace
global
withglobalThis
(#4958) - nuxt: Support auto imports within
<template>
(#4904) - nuxt: Experimental flag to use external vue dependencies (#5083)
π©Ή Fixes
- nuxt: Respect baseurl when redirecting (#4933)
- nuxt: Check for 404s after user middleware (#4913)
- cli: Only reload for top level dirs (#4912)
- vite: Add
file://
protocol tovite-node
entry file path (#4966) - test-utils: Hardcode ipv4 ip for localhost (#4998)
- nuxt: Fix router redirection on aliased pages (#4982)
- nuxt: Allow passing extraneous attrs to meta components (#5071)
- nuxt: Add default empty title to trigger
titleTemplate
(#5064) - nuxt: Default statusCode of
navigateTo
from301
to302
(#5173) - schema: Add missed types for
title
,bodyAttrs
andhtmlAttrs
(#5184) - nuxt: Respect
navigateTo
options using server middleware in server-side (#5145) - nuxt: Support
RouterView
props inNuxtPage
(#5272) - schema, vite: Resolve
mode
config correctly (#5255) - nuxt: Add
ssrContext
types onNuxtApp
(#5333) - types: Tidy types for
useAsyncData
(#5340) - nuxt: Relax server import protections (#5355)
- nuxt: Keep route param optionality when sibling is an index (#5300)
- kit: Pass resolved path to
isIgnored
(#5375) - vite, kit, nuxt: Generate safe variable names using knitwork (#4906)
- webpack: Respect
build.transpile
(#5043) - nuxt: Transform extends layers within
node_modules
(#5042) - nuxt: Throw an error when using unknown route middleware (#5323)
- nuxt: Don't debounce watcher and include layers (#5002)
- vite: Don't terminate with escaped delimiters (#5409)
- nuxt: Exclude non-cwd auto-imports and don't process all files (#5421)
- nuxt: Ignore whitespace and commas within
resolveComponent
(#5428) - cli: Always set
NODE_ENV
value with a warning (#5417) - nuxt: Don't add macro query to the end of id (#5413)
- webpack: Enable
extractCSS
by default (#4388)
π Refactors
- vite, webpack, test-utils: Use caret range for
vue
peer dependency (#5190) - cli: Provide better advice on failing clone (#5155)
- Fix typo and code improvements (#5344)
- cli: Improve env update message (#5430)
π Documentation
- Add missing parentheses in the
alias
example (#4995) - Fix typo in environment variable (#4990)
- data-fetching: Add note about difference between
useFetch
anduseAsyncData
(#4974) - api: Improve
useFetch
docs for body type and additionalohmyfetch
options (#4985) - Minor improvements for the quick start section (#5036)
- middleware: Add
navigateTo
options (#5044) - Update wording of client-side rendering explanation (#5049)
- Demonstrate the multiple
useState
with same key (#5059) - config: Correct naming of
NUXT_APP_CDN_URL
environment variable (#5032) - Update logo to better support light and dark mode. (#5094)
- Fix nuxt app guide linking to a 404 page (#5122)
- api: Add experimental
--prerender
flag tonuxi build
command (#5112) - api: Add
key
option foruseFetch
(#5089) - roadmap: Nuxt content v2 release (#5129)
- Add
--no-clear
flag in the documentation of development server (#5197) - deploy: Update default host for node preset (#5228)
- guide: Add use of
NuxtLayout
inapp.vue
with pages (#5225) - Small typo in the "catch-all route" description (#5273)
- pages: Add information for typing page metadata (#5270)
- Add documentation for
titleTemplate
(#5093) - Fix typo in component migration guide (#5284)
- Fix typo in programmatic navigation (#5298)
- Add warning against layout as root element (#5345)
- Update keepalive key name (#5366)
- api: Add
useRequestEvent
(#5326) - api: Add docs for
useRouter
composable (#4949) - Update cookie example with
defineEventHandler
(#5405) - Update plugin provide example (#5386)
- Fix mdn links for 301 and 302 http status (#5416)
π‘ Chore
β€οΈ New Contributors
- @jremye made their first contribution in #4966
- @0ri2N made their first contribution in #4995
- @Chris-Zhu made their first contribution in #4990
- @ArthurMJ96 made their first contribution in #4985
- @aifodu made their first contribution in #5049
- @husayt made their first contribution in #5059
- @srtonz made their first contribution in #5032
- @heychazza made their first contribution in #5094
- @mishushakov made their first contribution in #5112
- @ashgo-x made their first contribution in #5187
- @SirMishaa made their first contribution in #5197
- @cawa-93 made their first contribution in #5184
- @JoseeWouters made their first contribution in #5225
- @mael-queau made their first contribution in #5273
- @AcelisWeaven made their first contribution in #5284
- @nathanchase made their first contribution in #5298
- @Zalexios made their first contribution in #5386
- @MaximKing1 made their first contribution in #5416
- @dotoleeoak made their first contribution in #5413
- @ennioVisco made their first contribution in #5430
v3.0.0-rc.3
π Enhancements
Nuxt, Kit
- #4850 Support
serverHandlers
/devServerHandlers
shortcuts to register custom handlers
Nuxt
π©Ή Fixes
Nuxt
- #4770 Use
router.resolve
to resolve initial url - #4781 Ensure url is not empty string
- #4839 Clear errors after navigation
- #4842 Check if default slot is provided before calling it
- #4841 Normalize window location for universal router
- #4791 Await asyncData if
ssr: false
- #4851 Add missing import to client only wrapper
- #4857 Avoid redirect with different encoding and trailing slash
Schema
Vite
π Refactors
Nuxt
- #4853 Cleanup renderer entry
π Documentation
Data-fetching
- #4824 Fix and improve data-fetching example
API
General
- #4831 Fix example syntax for runtime hook plugin
β€οΈ New Contributors
- @huang-julien made their first contribution in #4830
- @jontybrook made their first contribution in #4831
- @Krutie made their first contribution in #4776
- @salimabsi made their first contribution in #4824
- @derz made their first contribution in #4822
v3.0.0-rc.2
π©Ή Fixes
Nuxt
- #4491 Await for
router.push
on ssr - #4626 Cleanup auto imports on regenerate
- #4590 Warn to provide a key for
useFetch
withtransform
option - #4677 Use suspense for child pages on client-side navigation
- #4666 Mark config head as non-reactive
- #4210 Improve error types for
useAsyncData
anduseFetch
- #4645 Process middleware after plugins
- #4755 Preserve
error.data
in response
CLI
- #4595 Don't strip file extensions from dirs in
tsconfig
- #4685 Typo in init message
- #4612 Improve
nuxi init
output
Schema
- #4695 Decrease recursion on
DeepPartial
Vite
- #4512 Transform virtual templates
- #4442 Use single regex to reduce risk of collisions
- #4596 Don't match across newlines
β¨ Features
Nitro
- #4304 Add
nitro:build:before
hook
Pages
β οΈ #4537 Explicitly allow optional params with[[
General
- #4509 Allow disabling sourcemap generation
π Documentation
General
- #4502 Update migration guide
- #4506 Simplify example of Head components
- #4519 Remove duplicate entry for
default
option - #4510 Update stackblitz links
- #4485 Fix 'alias' usage
- #4499 Improve netlify deployment
- #4401 Improve server routes guide
- #4573 Update environment variable in example
- #4593 Add layout to match custom header example
- #4603 Fix some minor typos
- #4608 Fix typo
- #4617 Fix typo
- #4616 Make titleTemplate function form example clearer
- #4640 Add note and banner about edge channel
- #4653 Fix edge alert syntax
- #4679 Fix typos
- #4675 Add notes about auto imports from
composables/
directory - #4715 Fix incorrect function declaration in composables
- #4714 Add note that
.env
is not read in production - #4742 Make
useFetch
example consistent with others
Features
- #4563 Complete assets page
Typescript
- #4660 Typos
Migration
- #4642 Update to use new
runtimeConfig
Readme
- #4628 Fix typo
Concepts
- #4601 Change phrasing
API
- #4549 Fix
useAsyncData
example
π‘ Chore
General
Docs
- #4577 Update social card
β οΈ Breaking Changes
- #4537 Explicitly allow optional params with
[[
If you are relying on [slug]
at the end of a route to generate an optional parameter, you will need to rewrite it as [[slug]]
.
β€οΈ New Contributors
- @Vincent-Risk0 made their first contribution in #4502
- @Benbinbin made their first contribution in #4519
- @cinob made their first contribution in #4485
- @klevron made their first contribution in #4549
- @sammce made their first contribution in #4601
- @dantownsend made their first contribution in #4603
- @UzzolX made their first contribution in #4608
- @riddla made their first contribution in #4616
- @wireta made their first contribution in #4628
- @gui-desan made their first contribution in #4653
- @sanscheese made their first contribution in #4685
- @sr2echa made their first contribution in #4679
- @Kapcash made their first contribution in #4675
- @m0ksem made their first contribution in #4715
- @max-programming made their first contribution in #4612
- @zzxswl made their first contribution in #4742
- @Matix-Media made their first contribution in #4755
v3.0.0-rc.1
π£ 3.0.0-rc.1
"Mount Hope"
Release Announcement
π Check out the Announcing Nuxt 3 Release Candidate for more information about this release!
Migrating from nuxt3
edge releases
If you are already a beta tester of nuxt using nuxt3
package, please follow the steps below to use RC.1:
-
Check out Breaking changes tracker to apply any of the previous possible breaking changes on edge-channel.
-
Remove
.nuxt
,package.lock.json
,yarn.lock
andnode_modules
-
Update
nuxt.config
to importdefineNuxtConfig
fromnuxt
instead ofnuxt3
:
- import { defineNuxtConfig } from 'nuxt3'
+ import { defineNuxtConfig } from 'nuxt'
export default defineNuxtConfig({ ... })
- Update
package.json
{
"devDependencies": {
- "nuxt3": "latest"
+ "nuxt": "^3.0.0-rc.1"
}
}
Alternatively, you can use "nuxt": "npm:nuxt3@latest"
to keep using the latest edge releases of Nuxt 3.
Migration for module authors
For Nuxt 3 modules created by new module-builder toolchain, also update @nuxt/kit
dependency to use RC.1 in package.json
:
{
"dependencies": {
- "@nuxt/kit": "npm:@nuxt/kit-edge@latest"
+ "@nuxt/kit": "^3.0.0-rc.1"
}
}