chore(deps): update dependency nuxt to v3 #23
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
^2.14.12->^3.0.0Release Notes
nuxt/nuxt (nuxt)
v3.8.2Compare Source
👀 Highlights
3.8.2 is a patch release and we've deferred some exciting features in our next release (3.9.0, expected in December) but it does bring a significant Nitro minor release: v2.8.0. It's well worth checking out the release notes.
👉 Note that as Nitro has updated to rollup v4, but as Nuxt's vite dependency is still on rollup v3 until v3.9, you may experience type mismatches in modules or your projects if you are dependent on particular rollup plugins or plugin types.
✅ Upgrading
As usual, our recommendation for upgrading is to run:
This will refresh your lockfile as well, and ensures that you pull in updates from other dependencies that Nuxt relies on, particularly in the unjs ecosystem.
👉 Changelog
compare changes
🩹 Fixes
transformAssetUrls(#24173)createError(#24093)plugins.d.tsif they will be written (#23943)typeofoptimisations (#23903)KeepAlivecache (#24024)runtimeConfigtype hints (#23696)useFetchkey (#24307)useFetchkey from headers (#23462, #24333)ignoreOptions(#24337)useFetch(#24364)useCookietimeout (#24253)app:error(#24376)📖 Documentation
import.meta(#24186).nuxtrcinnuxt/starter(56147b4a8)defineNuxtPluginsyntax in bridge migration (#23036)nuxt3-vuex-modulein migration guide (#24260).gitignorein directory structure (#24338)app.configplacement with customsrcDir(#24252)<ContentDoc>in example (#24244)@nuxt/kit-nightlyin example (bdedc3207)nuxi-edgetonuxi-nightly(#24347)🏡 Chore
@nuxt/test-utilsto separate repo (#24146)repositoryfields inpackage.json(54529c17d)package.jsons (#24189)@nuxt/eslint-config(#24209)✅ Tests
❤️ Contributors
v3.8.1Compare Source
👉 Changelog
compare changes
🔥 Performance
pageson nuxt app and deduplicate calls (#24032)🩹 Fixes
extends(#23795)target: blanklinks with base (#23751)std-envto detect whether app is being tested (#23830).jsonextension for server components (#23802)@unhead/vuein template code (#23858)baseURL(#23884)cloneDeepagain (#23888)$fetchat entry start (#23906)postcss-urland duplicatepostcss-import(#23861)useCookievalue when it expires (#23549)h3cors handler for vite routes only (#23995)addServerImportsDirimplementation (#24000)isChangingPageutil in scrollBehavior (#24091)useCookie(#24043)ClientFallback(#24086)typeCheckplugin (#24114)💅 Refactors
useRequestEvent()internally (#23916)📖 Documentation
useFetchkey generation logic (#24082)addPrerenderRoutesname (#24102)🏡 Chore
✅ Tests
NuxtIsland(#23801)🤖 CI
❤️ Contributors
v3.8.0Compare Source
👀 Highlights
We have a lot of exciting features in v3.8, and can't wait for you to try it out.
💻 Nuxi improvements
Just to remind you, we're now using the new Nuxt CLI which is now versioned separately. There are some exciting improvements there to follow, so do check out the latest releases. (For example, we now share the same port with the Vite websocket, meaning better support for docker containers in development.)
🚨 Built-in Nuxt DevTools
Nuxt DevTools v1.0.0 is out and we now think it's ready to be shipped as a direct dependency of Nuxt.
👉 You can check out the release notes for more information - and stay tuned for an article detailing our roadmap for the future.
📸 Nuxt Image auto-install
We've now made
<NuxtImg>and<NuxtPicture>first-class built-in components, documenting them and auto-installing@nuxt/imagethe first time that they are used (#23717).autoinstall2.mp4
We would definitely advise using
@nuxt/imageif you're using images in your site; it can apply optimisations to make your site more performant.📂 Deeper layout scanning
🚨 This is a behaviour change so do take care with this one: 🚨
We now support scanning layouts within subfolders in
~/layoutsin the same way as we do with~/components.File | Layout name
-- | --
~/layouts/desktop/default.vue | 'desktop-default'
~/layouts/desktop-base/base.vue | 'desktop-base'
~/layouts/desktop/index.vue | 'desktop'
See #20190 for more information
📊 App Manifest
We now support a built-in app manifest (see #21641), which generates a manifest at
/_nuxt/builds/meta/<buildId>.json.Initially this enables loading payloads only for prerendered routes, if a site is static (preventing 404s). It also enables client-side route rules. To begin with, only
redirectroute rules will have an effect; they will now redirect when performing client-side navigation. (More coming soon...!)The app manifest also enables future enhancements including detection of outdated deployments by checking
/_nuxt/builds/latest.json.You can switch off this behaviour if you need to (but do let us know if you have any issues):
🤝 Scope and context improvements
We now define a 'scope' for Nuxt composables executed in plugins (#23667), which allows running synchronous cleanup before navigating away from your site, using the Vue
onScopeDisposelifecycle method. This should fix an edge case with cookies (#23697) and also improves memory management, for example in Pinia stores (#23650). You can read more about Vue effect scopes.We also now support native async context for the Vue composition API (#23526). In case you're unaware, we support native async context on Node and Bun, enabled with
experimental.asyncContext. This can help address issues with missing a Nuxt instance. But it didn't previously affect missing Vue instances.If you experience issues with 'Nuxt instance unavailable', enabling this option may solve your issues, and once we have cross-runtime support we are likely to enable it by default.
🔗 NuxtLink defaults
We've supported defining your own
NuxtLinkcomponents with thedefineNuxtLinkutility. We now support customising the options for the built-in<NuxtLink>, directly in yournuxt.configfile (#23724). This can enable you to enforce trailing slash behaviour across your entire site, for example.⚡️ Data fetching improvements: deep and caching
We have two very significant new features for
useAsyncDataanduseFetch:deep: falseto prevent deep reactivity on thedataobject returned from these composables (#23600). It should be a performance improvement if you are returning large arrays or objects. The object will still update when refetched; it just won't trigger reactive effects if you change a property deep within thedata.getCachedDataoption to handle custom caching for these composables (#20747)We also support configuring some default values for these composables in an app-wide way (#23725):
🔢 Layer improvements
We now more carefully load layer plugins (#22889 and #23148) and middleware (#22925 and #23552) in the order of the layers, always loading your own plugins and middleware last. This should mean you can rely on utilities that layers may inject.
We've also added a test suite to cover these layer resolution changes.
And probably one of the most significant changes - if you are using remote layers we now clone these within your
node_modules/folder (#109) so layers can use dependencies with your project. Seec12release notes for full details.😴 Nightly release channel
Every commit to the
mainbranch of Nuxt is automatically deployed to a new release, for easier testing before releases. We've renamed this from the 'edge release channel' to the 'nightly release channel' to avoid confusion with edge deployments. And probably also with Microsoft Edge (though I haven't heard that anyone was confused with that one!)➡️
nuxt3is nownuxt-nightly➡️
nuxi-edgeis nownuxi-nightly➡️
@nuxt/kit-edgeis now@nuxt/kit-nightly... and so on.
You can read more about how it works.
⚗️ Nitro v2.7
Nitro v2.7 has been released with lots of improvements and bug fixes - do check out the full changelog.
🔥 One of the most significant is that we now save ~40% of bundle size in production by using native
fetch(which is supported in Node 18+) (#1724). So if possible, we'd recommend you update your Node version to at least 18.💪 Type import changes
🚨 This is likely to need code changes in your project 🚨
Vue requires that type imports be explicit (so that the Vue compiler can correctly optimise and resolve type imports for props and so on). See core Vue
tsconfig.json.We've therefore taken the decision to turn on
verbatimModuleSyntaxby default in Nuxt projects, which will throw a type error if types are imported without an explicittypeimport. To resolve it you will need to update your imports:You may also encounter modules in the Nuxt ecosystem that need to be updated; please open an issue for those modules. I'm also very happy to help if you're encountering any problems with this, if you're a module author. Just tag me and I'll take a look.
If for whatever reason you need to undo this change in your project you can set the following configuration:
However, we'd recommend only doing that temporarily, as Vue does need this option to be set for best results.
✅ Upgrading
As usual, our recommendation for upgrading is to run:
👉 Changelog
compare changes
🚀 Enhancements
addServerImportsandaddServerImportsDir(#23288)prerenderRoutesssr composable (#22863)appManifestby default (#23448)withAsyncContext(#23526)-nightlyextension (#23508)@nuxt/devtoolsas dependency and enable (#23576)deep: falsefor data composables (#23600)@nuxt/imagewhen it is used (#23717)<NuxtLink>options (#23724)🔥 Performance
🩹 Fixes
asyncDataerrors withnull(#23428)vue-router(#23440)config.autoImportinaddServerImports(#23472)clearNuxtStatecalled w/o keys (#23483)addPrerenderRoutesname (#23509)test/devas manifest buildId when appropriate (#23512)<DevOnly>(#23466)useFetch(#23693)lodash-es+ simplify postcss resolution (#23692)useAsyncData(#23351)prerenderedAtto override app manifest (#23781)prerenderedAtbehaviour pending next patch (108b1bdf7)📖 Documentation
listhenoptions on nuxi dev page (#23415)handlerforuseAsyncData(#23389)nitroto useruntimeConfig(#23454)bridge.typescriptoption must be set. (#23503)nuxt kitsection (#22375)/edge-channelpage to/nightly-release-channel(#23648)routeRulesexample (818dc626c)<NuxtImg>and<NuxtPicture>(#23741)🏡 Chore
✅ Tests
🤖 CI
❤️ Contributors
v3.7.4Compare Source
✅ Upgrading
As usual, our recommendation for upgrading is to run:
👉 Changelog
compare changes
🩹 Fixes
nuxt/*exports (#23357)💅 Refactors
consolaand improve test dx (#23302)📖 Documentation
nuxt2command (#23211)code-blockin migration guide (#23224)callHookmethod (#23231)srcDirJSDoc (#23250)nuxtApp.runWithContext(#23258)devtools.nuxt.com(#23350)awaitto clarifysendRedirectis async (#23345)tryUseNuxtto kit context utils list (#23373)🏡 Chore
.devcontainer(#22810)🤖 CI
linkCheckerjob tolink-checker(#23319)❤️ Contributors
v3.7.3Compare Source
👉 Changelog
compare changes
🩹 Fixes
#components(#23188)💅 Refactors
📖 Documentation
❤️ Contributors
v3.7.2Compare Source
✅ Upgrading
As usual, our recommendation for upgrading is to run:
👉 Changelog
compare changes
🩹 Fixes
joinURLwith remote sources on NuxtIsland (#23093)data-vattrs from server component props (#23095)useFetchauto key (#23086)cssCodeSplit(#23049)spaLoadingTemplateif file exists (#23048)tsconfig.jsondefaults (#23121)0(#23127)📖 Documentation
nameparam toPageMetainterface description (#23107)experimental.componentIslands(#23138)nuxi initcommand (#23155)🏡 Chore
🤖 CI
❤️ Contributors
v3.7.1Compare Source
✅ Upgrading
As usual, our recommendation for upgrading is to run:
This will refresh your lockfile as well, and ensures that you pull in updates from other dependencies that Nuxt relies on, particularly in the unjs ecosystem.
👉 Changelog
compare changes
🔥 Performance
🩹 Fixes
ssr: false(#22869)prioritywhen registering components dirs (#22882)addLayout(#22902)true(#22905)write: falsefor type templates (#22972)shouldExternalize(#22991)destrin more places overJSON.parse(#22997)📖 Documentation
<NuxtPage>(#22912)pageKey(#22920)envobject for nuxt plugins (#22963)NuxtLayout(#22989)🏡 Chore
nuxi-edgerather thannuxi-ng(9610cf03d)🤖 CI
GITHUB_REF_NAMEto get branch for release (d49ea58de)❤️ Contributors
v3.7.0Compare Source
👀 Highlights
🐣 A New CLI
We've refactored
nuxiusing unjs/citty and this marks the first Nuxt release that depends on the new version, safely in its own repository. We have grand plans for this - check out some of the features + roadmap discussions in nuxt/cli and please feel free to contribute!Nuxi is now decoupled from the main
nuxtversion - we plan to iterate and release nuxi more quickly in future so you can expect new things coming soon!🕸️ Native Web Streams and
ResponseWith improvements in unjs/h3 and unjs/nitro, it's now possible to directly return a
Responseobject from server routes, meaning it's also possible to return and handle streams natively in Nuxt.👉 Check out the full detail in the unjs/h3 and unjs/nitro release notes.
🔥 HTML Rendering Optimisations
This release comes with a couple of improvements in rendering HTML responses from the server. We now determine whether to preload/prefetch resources at build time (so you can customise this in the
build:manifesthook). We also now manage rendering the HTML for them directly inunhead(#22179), which means you can configure the order for<link>,<meta>,<script>,<style>, and more. And - in our preliminary testing - it's even faster!It's possible to opt-in to upcoming head improvements with the
experimental.headNextflag. This currently includes a new ordering algorithm based on [capo.js](https://togConfiguration
📅 Schedule: Branch creation - "every weekend" in timezone Europe/Berlin, Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by Mend Renovate. View repository job log here.