3.1.0 is the first minor release after Nuxt 3.0 including bug fixes and enhancements.
👀 Highlights
- 📖 Lots of improvements to the documentation and website (you can already see them in nuxt.com)
- 🏝️ Experimental component Islands and server only components
- ✨ New
onNuxtReady
,useNuxtData
anduseSeoMeta
composables - ﹛ experimental config schema (for module or theme authors)
- 💪 Upgraded to Nitropack v2
- ⚡️ Migrated to Vite 4 and Rollup 3.
Changelog
🚀 Enhancements
- nuxt: Experimental server component islands (#5689)
- nuxt: Add
onNuxtReady
composable (#9478) useNuxtData
composable (#9262)- nuxt: Support for extending error.vue in layers (#9521)
- vite: Upgrade to vite 4 (#9238)
- nuxt: Deep watch
useCookie
ref value by default (#9664) - vite: Display production build stats (#9761)
- nuxt: Server-only components (#9972)
- imports:
imports:context
hook for unimport context (#9971) - vite: Support
build.transpile
as function (#7767) - nuxt: Prefetch middleware/layouts + await layout loading (#10155)
- nuxt: Support server components with extracted payloads (#10113)
- kit: Add
extendRouteRules
method (#9771) - nuxt: Allow disabling color for
<NuxtLoadingIndicator>
(#18432) - head:
useSeoMeta
composable (#18441) - Experimental config schema (#18410)
🔥 Performance
- nuxt: Use static import of
@unhead/ssr
(#9826) - nuxt: Add tree-shaken
useServerSeoMeta
composable (#18476)
🩹 Fixes
- Remove
postcss.config
from schema (#9181) - nuxt: Include missing
<NuxtPage>
component props (#9204) - nuxt: Allow layouts to receive custom props (#9395)
- test-utils: Do not hide vitest output (#9442)
- nuxt:
useCookie
with defaults should return non-null value (#9449) - nuxt: Defer render-blocking prefetches until after load (#9475)
- nuxt: Speculation rules should be reactive (#9472)
- kit: Support applying
.nuxtignore
within external layers (#9599) - nuxt: Remove deprecated
req
/res
access (#9636) - nuxt: Await plugin asyncdata promises in nuxt hook (#9616)
- schema: Add hookable dependency (#9648)
- vite: Skip only vite transform middleware (#9602)
- nuxt: Remove absolute paths from routes objects (#9655)
- nuxt: Make dev-only regexp less greedy (#9679)
- nuxt: Set is loading state for
<NuxtLoadingIndicator>
after throttle (#9832) - cli: Show an error if no value is supplied for the
--template
flag (#9946) - vite: Defer to nitro to copy public dir (#10013)
- nuxt: Include components
runtime
dir in build output (#10046) - nuxt: Add
build.transpile
strings to nitro inline list (#10094) - nuxt: Support deep assign on empty object for app config (#10087)
- nuxt: Don't short circuit middleware after validate function (#9180)
- nuxt: Don't try to override computed layouts in
definePageMeta
(#9161) - nuxt: Allow overriding lower layer composables (#10017)
- nuxt: Update
class
prop type for head components (#9133) - nuxt: Avoid injecting url helpers into
globalThis
(#9627) - nuxt: Name anonymous components in render tree (#10011)
- vite: Add additional before skipping vite transform (#10120)
- kit: Resolve group syntax of
ignore
(#15884) - nuxt: Use query for hashing the fetch key (#18411)
- cli: Prevent showing stack traces while scaffolding (#9962)
- nuxt: Provide types for modules as array (#18416)
- vite: Don't skip loading styles in hydration phase (#18433)
- vite: Enable css sourcemaps in dev based on
sourcemap
(#18446) - nuxt: Await async
callWithNuxt
calls (#18443) - nuxt: Let router handle internal redirects within middleware (#18445)
- nuxt: Import
onServerPrefetch
(629d2c099) - Upgrade unimport, close #15594 (#15594)
- Upgrade unimport (#18475)
💅 Refactors
- jobs: Remove unused asset (#9116)
- nuxt: Fix typo in internal plugin names (#9201)
- nuxt: Use
pathe.join
for layer lookup (#9540) - Split out type imports from value imports (#9225)
- nuxt: Remove
vue-meta
for head support (#9638) - nuxt: Do not add all composable auto-imports to
globalThis
(#9630) - vite: Show log when client build is starting (#9759)
- home: Sections (#9882)
- Heros (#9886)
- Improve internal type definitions of
<NuxtLink>
(#9869)
📖 Documentation
- Update to 3.0 and upgrade theme (cd2ad7108)
- Fix paths to migration guides (#9071)
- Fix broken paths (#9076)
- Set nuxt stability to stable (#9075)
- Fix broken link (24c8653b2)
- Update redirects (f01fc1863)
- seo: Add robots file (#9111)
- Improve images quality (#9112)
- Fix broken links in examples (#9119)
- Bump website theme version to 0.1.5 (#9125)
- Bump nuxt-website-theme to 0.1.6 (71fed589c)
- Update vercel icon to support dark mode (a4768fd56)
- Update website-theme version (16117060e)
- Fix typo in
commands/add
(#9206) - Remove stable release warning regarding options api (#9186)
- Fix typos in modules section (#9227)
- Updated info about
404.vue
(#9155) - External configuration table (#9189)
- homepage: Optimize gem textures (#9234)
- Add space between sentences (#9207)
- Improve seo titleTemplate and add social images (#9235)
- Update link to mdc extension (#9251)
- Add missing space (#9276)
- partners: Add brain agency partner (#9277)
- Bump website theme to 0.1.11 (#9299)
- Add warning about
.client
onMounted hook (#9263) - Use
layout
in example ofdefinePageMeta
(#9322) - schema: Add example and description for
imports.dirs
(#9346) - Change app-config url to avoid naming conflicts with app.vue (#9377)
- Add redirect for app.config to app-config (66efcd59d)
- installation: Add button to nuxt.new (7c998982f)
- installation: Typo in sentence (53d5a5a5a)
- roadmap: Add i18n module to the roadmap (#9403)
- Add more social cards (a50855bab)
- Bump version to 0.1.12 (#9423)
- seo: Add sitemap url to robots.txt (#9309)
- introduction: Add hero and cards (#9334)
- Disable markdownlint on mdc file (#9428)
- homepage: Fix typo (#9426)
- Add Project name placeholder (#9421)
- Update announcements to add stable release (a73a75c39)
- Theme version 0.1.13 (#9453)
- Website theme 0.1.16 (#9456)
- Update playwright url (#9483)
- Make
vite
monospace too (#9490) - Update agencies expertises (d36d11552)
- Add nuxt layers introduction and authoring guide (#9405)
- Heading and formatting improvements for layers (c307ee8b5)
- Update website-theme (cf4e7bf33)
- Update internal links to bridge overview page (228bc9ce2)
- Recommend to install non-edge version of
@nuxt/test-utils
(#9543) - Compress social image to jpg and upgrade website-theme (770cdf90d)
- agencies: Add liip (#9552)
- Fix typo and update theme (d500ac4e3)
- Update theme version (5fdb7b6f8)
- rendering: Hide light image in dark mode (#9620)
- Update examples link (#9152)
- Add docs for
preloadRouteComponents
(#9607) - Add missing line breaks (#9671)
- Indicate
navigateTo
options are optional (#9672) - Add community page (#9519)
- Bump website theme to 0.1.23 (#9703)
- community: Fix client-side images display (#9704)
- theme: Version 0.1.24 (#9716)
- version: Theme 0.1.25 (#9729)
- community: Temporary disable newsletter subscription (#9740)
- concepts: Add
utils/
to directory-based auto-imports (#9739) - Link to nuxt.com instead of v3.nuxtjs.org (#9786)
- Version 0.1.27 (#9788)
- community: Fix missing image (ce9141285)
- Improve wording and fix typo (#9795)
- getting-started: Improve usage of
pnpm
(#9775) - index: Fix typo in 'GitHub' (#9807)
- Enable hybrid rendering (#9823)
- Rename svg asset (dbc31869b)
- Add docs landing page (#9706)
- homepage: Add module cta (#9591)
- Fix
layouts
typo in nuxtignore page (#9893) - Fix url for prettier.io pointing to stylelint.io (#9892)
- Fixed typos and improved wording (#9848)
- Fix typos and capitalisation (#9844)
- Clarify plugins are auto-registered, remove components default (#9815)
- Fix markdown (#9838)
- Fix typos (#9919)
- release: Theme 0.2.2 (#9920)
- example: Fix
runtimeConfig
extension in config-extends example (#9912) - sponsors: Fix hero (#9941)
- configuration: Clarify the location of
app.config.ts
in the source directory (#9937) - support: Update wording (#9821)
- Refactor cards (#9935)
- guide: Fix the link to deploy in
guide/.output
(#9994) - Update
generate
doc to include--dotenv
(#9991) - Remove nuxt 2 information from
generate
schema (#10002) - partners: Fix spacing (#10025)
- Fix typo (#10019)
- partners: Add macopedia as partner (#10028)
- Update testimonials (685cb100f)
- Add back the newsletter (#10032)
- version: 0.3.5 (#10078)
- version: 0.3.6 (#10093)
- Update link (#10056)
- version: Use nuxt edge channel (#10117)
- version: Revert back to stable nuxt version (d6c7676f1)
- Update hooks source line number (#10102)
- version: 0.3.8 (#10127)
- Update nested router example (#10115)
- Add
Nuxt: A vision for 2023
post (#10141) - Add link! (02df51dd5)
- Remove stray parenthesis (#10144)
- Add port example in
ecosystem.config
(#10076) - Add description of returning different status codes (#10059)
- Add info about extensions and pathPrefix keys (28a2a91b6)
- version: 0.3.10 (#10170)
- Fix hydration warnings on 2023 vision article (#10171)
- Add redirect for workshop (371bc1aff)
- Remove line break (940720a58)
- Add buttons slot on PageHero component (#10139)
- Rename layer0 to Edgio (#9900)
- Update links to
nuxt.com
(#18425) - examples: Fix error handling example (#18434)
- Add nuxt 2 section (ce8ad33ed)
- partners: Update webreinvent description (#18473)
- Add link to config api (#18474)
- Update partners (#18482)
🏡 Chore
- Update badges in readme to latest (#9065)
- typo: Link fix (#9070)
- Update example nuxt versions (#9114)
- Restore playground config (a4e0a64f3)
- Update renovate config syntax (6145e0427)
- Update badges (32e01de8d)
- Update website version (b7d0f52de)
- Update link to typescript docs (#10045)
- docs: Update lockfile and disable style inlining (49d4ce860)
- docs: Revert
vue-lite-youtube-embed
upgrade (6652983ba) - docs: Revert lockfile (#10063)
- Case police update (#10085)
- Fix typo in comment (#10148)
- Sync templates (1211f62d4)
- Run renovate against
2.x
branch also (0fb147be4) - Update internal repo/issue links to use
nuxt/nuxt
(081dc3254) - Trigger ci (7f2637323)
- Update links to
nuxt/framework
discussions (a683b1a20) - Update more repo links (19973c26f)
- Disable
issue-up
on upstream vite repo (c28f1e429) - Update lockfile (b2291189b)
- Bump docs version (#18417)
- Add
3.x
label to feature request template (fa129cb83) - Update licence start year (5518e2645)
- Include central readme/licence when publishing individual packages (#18421)
- V3.1.0 (963dc0ba8)
✅ Tests
🎨 Styles
❤️ Contributors
- Daniel Roe daniel@roe.dev
- Clément Ollivier clement.o2p@gmail.com
- Anthony Fu anthonyfu117@hotmail.com
- Pooya Parsa pyapar@gmail.com
- Sébastien Chopin seb@nuxtjs.com
- Harlan Wilton harlan@harlanzw.com
- Alexander Lichter github@lichter.io
- Mehdi HosseinZade arshen@outlook.com
- Kareem Dabbeet
- Inesh Bose
- James George jamesgeorge998001@gmail.com
- Rishi Raj Jain rishi18304@iiitd.ac.in
- Alan Poulain contact@alanpoulain.eu
- Carolina Delerue
- Florent Delerue florentdelerue@hotmail.com
- Ikko Eltociear Ashimine eltociear@gmail.com
- Mike Laumann Bellika
- Elzodxon Sharofaddinov
- Richard Manzoli manzolidev@gmail.com
- Jose Morel j_morel@icloud.com
- FenLiaoYu
- Michel EDIGHOFFER edimitchel@gmail.com
- Kyohei Oka 0622okakyo@gmail.com
- Mohammad Saleh Fadaei
- Julien Huang
- Florian LEFEBVRE contact@florian-lefebvre.dev
- Falko-apheris
- Alex Liu
- PaulUgwu
- AuroraTea 1352685369@qq.com
- Julien Sulpis julien.sulpis@gmail.com
- Peter Blinov pete.blinov@yandex.ru
- Brian Mhlanga brianmhlanga9@gmail.com
- Alejandro Romano alejandro9r@gmail.com
- BetonZM
- Hugo Brosnahan
- Anthony Jekanyika anthonyjek1950@gmail.com
- PickleNik
- にー兄さん / Kaito Tsutsumi 2237k.drumath@gmail.com
- RedCommand
- Yann Odeyer
- Mechite
- DmitryVladimirson
- Jasper Zonneveld
- CarolinaDelerue
- Valentín Costa valentincostam@gmail.com
- 三咲智子 Kevin Deng sxzz@sxzz.moe
- Daniil Chudo daniil4udo@gmail.com
- Mahdi Boomeri
- Iago i_sanjurjo@yahoo.es
- Evgeny Yurkin y89998127636@yandex.ru
- Mst101
- Christian Preston christianpreston@ymail.com
- Philipp Klose
- Mehmet hi@productdevbook.com
- Dominik
- Kazuya Kawaguchi kawakazu80@gmail.com
- Rami Menai rami.menai@outlook.com
- InvinciblenowYT
- Mortezahatamikia-code
- Damian Głowala
- Nathan Chase nathan@nathanchase.com
- Conner github@conner-bachmann.de
- Jake Morris
- Danil Zalizchuk danilmail0110@gmail.com
- Ikko Ashimine eltociear@gmail.com
- Gérard Mathiuet gerard@web.gem.swiss
- Yurica Xu iherewithmyheart@gmail.com