💬 Join the release discussion
Highlights
- ✅
app.config.ts
with HMR and Reactivity support (see documentation and example) - ✅ Vite-Node enabled by default (#6217)
- ✅ Updated to nitropack@0.5.x
- ⚠️
autoImports
option and hooks is deprecated and renamed toimports
(#6864) (#7158) - ⚠️ Vue dependency is now externalized (#6868)
- ⚠️ Handle prerelease constraint (#7116)
- 👉 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.
- 👉 If you see an error like
Changelog
🚀 Enhancements
- webpack, vite: Default to
.js
extension for client (#6505) - schema, vite: ⚠️ Enable
vite-node
by default (#6217) - vite: Allow disabling entry warmup (#6647)
- nuxt: Exclude page chunks from being prefetched (#6662)
- cli: Auto cleanup with project manifest changes (#6672)
- nuxt:
app.config
with HMR and reactivity support (#6333) - nuxt: Allow
getRouteFromPath
to use objects (#5900) - nuxt: Add warning in dev mode if layouts/pages do not have a single root node (#5469)
- nuxt: Config options for default keepalive, page & layout transitions (#5859)
- nuxt: Allow programmatically prefetching global components (#6661)
- cli: Support mode flags for
add
command (#3921) - nuxt:
imports.autoImport
option to disable auto-imports (#6768) - nuxt:
navigateTo
supports external redirects (#5022) - nuxt:
app.config
improvements (#6905) - nuxt: Add
setPageLayout
utility (#6826, #7075) - cli: Display nuxt and nitro versions for dev and build commands (#7118)
- kit, schema: Allow extending with
theme
config (#7131) - nuxt: ⚠️ Rename
autoImports
toimports
(#6864) - kit, nuxt: Improve
autoImports
deprecation dx (#7158) - nuxt: Pass and format vite-node build errors (#6683)
🔥 Performance
- nuxt: Tree-shake asyncData client logic from server (#7056)
- nuxt: Don't prefetch all global components (#7069)
🩹 Fixes
- nuxt: Remove stray commas in component templates (#6580)
- cli: Update
server.port
andserver.host
with listener info (#6595) - nuxt: Add
#components
alias to tsconfig (#6634) - vite: Pass relative url as default base (#6637)
- nuxt: Don't set asyncData to existing payload on CSR if
initialCache
is disabled (#6640) - vite: Warmup server entries with
ssr
condition (#6649) - nuxt: Include tag attrs for non self-closing tags in tree-shake regex (#6675)
- nuxt: Fallback to static error page on server error (#6697)
- cli: Ensure
nuxi upgrade
runs in rootDir (#6707) - cli: Properly detect hash and tag for upgrade changelog (#6708)
- nuxt: Use
vue-devtools-stub
to mock@vue/devtools-api
for both cjs + esm (#6713) - nuxt: Pass params to client-only slot (#6584)
- vite: Improve
vite-node
module invalidation (#6736) - vite: Dedupe
vue
in client bundle (#6735) - nuxt: Ensure component helper methods do not create side-effects (#6789)
- nuxt: Use deep assignment for app.config hmr (#6788)
- nuxt: Throw hard error on initial spa load if aborted (#6857)
- nuxt: Pass analyze options through to nitro (#6871)
- cli: Build all types on typecheck command (#5437)
- nuxt: Lazy composables shouldn't block setup in
ssr: false
(#6901) - vite: Remove client
manifest.json
from public dir (#7021) - kit: Sort aliases before resolving (#7018)
- nuxt: Use shared state for asyncData (#7055)
- vite: Sanitize client asset chunk names (#7067)
- schema: Sync types of vite v3.x (#7104)
- kit: ⚠️ Handle prerelease constraint (#7116)
💅 Refactors
- nuxt: Enable strict type checking (#6368)
- vite: Enable strict type checking (#6616)
- nuxt, kit: Improve type strictness (#6685)
- Enable strict type checking everywhere (#6943)
- Apply lints from
@nuxtjs/eslint-config-typescript
v11 (#7114) - nuxt: Remove unused
meta:register
hook (#7130)
📖 Documentation
- Ensure consistent casing of section headers (#6578)
- components: Use
fallbackTag
inClientOnly
examples (#6587) - Global style imports example (#6490)
- composables: Add more examples for
autoImports
(#6615) - server: Add nitro config and storage examples (#6507)
- data-fetching: Fix and simplify cookie proxy example (#5770)
- Tweaks for data fetching, server routes and composables (#6653)
- Update links to nitro.unjs.io (#6684)
- Make wording slightly clearer (#6740)
- Fix typo in
defineEventHandler
example (#6741) - api: Add
<NuxtWelcome />
component docs (#6745) - Use updated h3 utils (#6818)
- api: Add missing kit utilities (#6841)
- plugins: Add note about composable usage (#6744)
- api: Add
useNuxtApp
composable (#6786) - composables: Add nested and plugin injection examples (#6743)
- examples: Add jsx example (#6870)
- api: Add
addRouteMiddleware
util (#6894) - Update stormkit link (3ee812939)
- Update link to pinia nuxt module (#6952)
- deploy: Update command for csr prerendering (#6966)
- api: Enhance
abortNavigation
util (#6936) - api: Add
defineNuxtRouteMiddleware
util (#6933) - api: Add
definePageMeta
util (#6931) - Replace backtick with apostrophe (#7015)
- api: Fix the layout file extension in cli example (#7024)
- schema: Update prefix for runtime config env variables (#6999)
- Add information on how to use options api asyncData (#7019)
- Increment directory structure numbers (#7102)
- Add explanatory comment before universal router stubs (#7124)
🏡 Chore
- ci: Set timeout for each step (#6923)
- nuxt: Fix typo (#6971)
- Add
dev:preview
script for playground preview (#6961) - repo: Remove backtick-type in bug issue-template (#7083)
- Bump rc version for edge versions (#7117)
- nuxt: Prevent error page rendering a null error (#7119)
- nuxt: Use latest
nitropack-edge
on release (#7036)
❤️ Contributors
- 4Kazelot
- Alex Kozack
- Alexander Lichter
- Angelo Schuler Piletti
- Anthony Fu
- Conrawl Rogers
- Damian Głowala
- Daniel Roe
- Harlan Wilton
- HomWang
- Ilya Artamonov
- Julien Huang
- Krutie Patel
- Lay
- Lexpeartha
- Louis Haftmann
- Mourad EL CADI
- Nils
- Ohb00
- Oumar Barry
- Pooya Parsa
- Qin Guan
- Richard Schloss
- Sébastien Chopin
- TheColaber
- Umut Aktaş
- Yaël Guilloux
- __Catalina