3.20.0 is the next minor release.
✅ Upgrading
Our recommendation for upgrading is to run:
npx nuxt upgrade --dedupeThis will deduplicate your lockfile as well, and help ensure that you pull in updates from other dependencies that Nuxt relies on, particularly in the unjs ecosystem.
👉 Changelog
🚀 Enhancements
- nuxt: Allow specifying component
declarationPath(#33419) - kit: Add
extensionsoption forresolveModule(#33328) - nuxt: Add abortController option to
useAsyncData(#32531) - nuxt: Display youch error page w/ user error page in dev (#33359)
- nuxt: Experimental typescript plugin support (#33314)
- nuxt,schema: Extract asyncData handlers to chunks (#33131)
- kit: Add
setGlobalHeadutility (#33512) - kit,vite: Allow enabling vite environment api (#33492)
🔥 Performance
- nuxt: Precompute renderer dependencies at build time (#33361)
- kit,schema: Remove some unnecessary dependencies (bdf34c263)
🩹 Fixes
- nuxt: Preserve hash with redirecting based on
routeRules(#33222) - kit: Safely cleanup
loadNuxtConfigin concurrent calls (#33420) - nuxt: Allow object-format
hrefin<NuxtLink>(b97ae2f70) - nuxt: Remove
mergeModelsfrom auto imports (#33344) - nuxt: Add back
shortPathproperty (#33384) - nuxt: Do not allow native attrs to shadow nuxt link props (0981990a7)
- nuxt: Remove
declarationPathfrom component dirs (e384ba3cb) - nuxt: Preserve root route in
isPrerenderedcheck (#33476) - nuxt: Exempt webpack vfs from pkg lookup (4df1e8275)
- nitro: Exempt nightly release from import protections (272d9abbe)
- webpack,rspack: Preserve prerender + nitro flags in server builds (#33503)
- nuxt: Support component auto-imports as arguments of
h()(#33509) - vite: Prevent assignment for rolldown's replacement plugin (#33526)
- nuxt: Use sha256 hash for prerender cache keys (#33505)
- nuxt: Add
NuxtTimerelative timenumericprop (#33552) - nuxt: Add
NuxtTimerelative timerelativeStyleprop (#33557) - nuxt: Handle arrays in app config correctly during HMR (#33555)
💅 Refactors
- Remove obsolete
shortPathproperty (#33384) - kit: Extract trace utilities (ddaedfa51)
- nuxt,vite,webpack: Allow builders to augment types (#33427)
- schema: Deprecate
extend,extendConfig, andconfigResolvedhooks (932a80dc6) - nitro,nuxt: Extract
@nuxt/nitro-serverpackage (#33462) - nuxt: Use
RouteLocationNormalizedLoadedGenericinternally (aa211fb4f) - vite: Make vite plugins environment-compatible (#33445)
📖 Documentation
- Add nuxt module
addServerPluginnote (#33409) - Remove deprecated node version (#33411)
- Update
declarationPathinaddComponent(#33380) - Add some notes/deprecations for vite hooks (2c6912d2f)
- Fix incorrect ESM module field info (#33451)
- Recommend
getLayerDirectories()instead ofnuxt.options._layers(#33484) - Add docs for
moduleDependencies(#33499) - Pin codemod to v0.18.7 for migration recipe (#33522)
🏡 Chore
- Migrate gitpod to ona (#33159)
- Use native node to run
test:prepare(cbad63c02) - Do not use native node to run
test:prepare(672c09423) - Update valid semantic scopes (4ca29168b)
- Ignore nitro templates (ec59aceeb)
- Remove
vue-demifromignoredBuiltDependencies(#33494) - Update vscode url (#33360)
- Correct jsdoc location for function used as parameters (#33507)
- Remove code comment (#33515)
- Patch changelogen for large numbers of commits (b6530b5b6)
- Filter out commits before last tag when constructing changelog (257049712)
- Ignore
@rollup/plugin-commonjs(c2bd323b8) - Pin
@rollup/plugin-commonjs(a524522ea)
✅ Tests
- Update runtime test to use
asyncDataDefaults.errorValue(b6f1c9b0d) - Refactor suite to use common matrix utils (#33483)
- Update typed router test (c55db2854)
🤖 CI
- Publish
@nuxt/nitro-serveron pkg-pr-new (d37ef17b0) - Remove nitro-server publish until v4.2 is released (e34c2f52f)
- For now, use tag push to trigger release (0705b835f)
❤️ Contributors
- Daniel Roe (@danielroe)
- 山吹色御守 (@KazariEX)
- Matej Černý (@cernymatej)
- Trung Dang (@NamesMT)
- 纸鹿/Zhilu (@L33Z22L11)
- Florian Heuberger (@Flo0806)
- Alexander Lichter (@TheAlexLichter)
- Julien Huang (@huang-julien)
- abeer0 (@iiio2)
- Max (@onmax)
- Octavio Araiza (@8ctavio)
- Bobbie Goede (@BobbieGoede)
- DipakHalkude (@DipakHalkude)
- Aleksander Błaszkiewicz (@ablaszkiewicz)