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:
3.12.4
->3.14.1592
3.12.4
->3.14.1592
3.14.0
->3.14.4
3.12.4
->3.14.1592
Release Notes
nuxt/nuxt (@nuxt/kit)
v3.14.1592
Compare Source
👉 Changelog
compare changes
🩹 Fixes
webpackbar
with support for rspack (#29823)dst
to deduplicate templates when adding them (#29895)dst
to invalidate modules (6cd3352de)change
events (#29954)<NuxtWelcome>
when building (#29956)💅 Refactors
📖 Documentation
🏡 Chore
✅ Tests
🤖 CI
❤️ Contributors
v3.14.159
Compare Source
We're leaning into the π theme - future patch releases of this minor version will just continue adding digits. (Sorry for any inconvenience! 😆)
👉 Changelog
compare changes
🩹 Fixes
module.json
(#29793)mlly
to resolve module paths to avoid cjs fallback (#29799)webpack-dev-middleware
(#29806)📖 Documentation
🏡 Chore
❤️ Contributors
v3.14.0
Compare Source
👀 Highlights
Behind the scenes, a lot has been going on in preparation for the release of Nuxt v4 (particularly on the
unjs
side with preparations for Nitro v3!)⚡️ Faster starts powered by
jiti
Loading the nuxt config file, as well as modules and other build-time code, is now powered by
jiti
v2. You can see more about the release in the jiti v2 release notes, but one of the most important pieces is native node esm import (where possible), which should mean a faster start. ✨📂 Shared folder for code and types shared with client/server
You should never import Vue app code in your nitro code (or the other way around). But this has meant a friction point when it comes to sharing types or utilities that don't rely on the nitro/vue contexts.
For this, we have a new
shared/
folder (#28682). You can't import Vue or nitro code into files in this folder, but it produces auto-imports you can consume throughout the rest of your app.If needed you can use the new
#shared
alias which points to this folder.The shared folder is alongside your
server/
folder. (If you're usingcompatibilityVersion: 4
, this means it's not inside yourapp/
folder.)🦀
rspack
builderWe're excited to announce a new first-class Nuxt builder for
rspack
. It's still experimental but we've refactored the internal Nuxt virtual file system to useunplugin
to make this possible.Let us know if you like it - and feel free to raise any issues you experience with it.
👉 To try it out, you can use this starter - or just install
@nuxt/rspack-builder
and setbuilder: 'rspack'
in your nuxt config file.✨ New composables
We have new
useResponseHeader
anduseRuntimeHook
composables (#27131 and #29741).🔧 New module utilities
We now have a new
addServerTemplate
utility (#29320) for adding virtual files for access inside nitro runtime routes.🚧 v4 changes
We've merged some changes which only take effect with
compatibilityVersion: 4
, but which you can opt-into earlier.previously, if you had a component like
~/components/App/Header.vue
this would be visible in your devtools as<Header>
. From v4 we ensure this is<AppHeader>
, but it's opt-in to avoid breaking any manual<KeepAlive>
you might have implemented. (#28745).Nuxt scans page metadata from your files, before calling
pages:extend
. But this has led to some confusing behaviour, as pages added at this point do not end up having their page metadata respected. So we now do not scan metadata before callingpages:extend
. Instead, we have a newpages:resolved
hook, which is called afterpages:extend
, after all pages have been augmented with their metadata. I'd recommend opting into this by settingexperimental.scanPageMeta
toafter-resolve
, as it solves a number of bugs.🗺️ Roadmap to v3.15
They didn't quite make it in time for v3.14 but for the next minor release you can expect (among other things):
✅ 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
🚀 Enhancements
jiti
(#29073)addServerTemplate
utility (#29320)useResponseHeader
composable (#27131)rspack
builder (#29142)pages:resolved
hook + scan meta post extend (#28861)definePageMeta
(#29586)shared/
folder and#shared
alias (#28682)useRuntimeHook
composable (#29741)🔥 Performance
useNuxtApp
(#29514)🩹 Fixes
InjectionType
template conditional (#29023)webpack
memfs (#29027)DOMException
as fetch abort exception (#29058)devServer.https
(#29049)buildDir
in dev mode (#29068)node_modules/
from parent urls (5bd42c893)crossorigin
attribute for stylesheets (#29138)routeRules
to hint pages to prerender (#29172)link:prefetch
(#29321)ConfigLayer
type fromc12
(#29370)typedPages
(#29352)configFile
as required in layer type (3bbcd7d21)createIsExternal
(686be8168)props
value indefinePageMeta
(#29683)nitropack/types
to ensure api routes are typed (54096875e)💅 Refactors
addBuildPlugin
internally (#29157)📖 Documentation
defineNuxtComponent
instead ofdefineComponent
(#29011)useRequestFetch
andevent.$fetch
(#29099)useFetch
errors (#29253)ofetch
headers for interceptors (#29118).env.test
(#29398)mockImplementation()
call (#29669)$fetch
(#29755)--envName
flag (#28909)📦 Build
beasties
(1b5391182)🏡 Chore
unbuild
update (71e0fb06f)jiti.import
(7ece49f9b)✅ Tests
unctx
transform (d81196122)🤖 CI
❤️ Contributors
v3.13.2
Compare 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
propsDestructure
by default (#28830)route
has enumerable keys (#28841)asyncData
(#28842)ssr: false
(#28834)injectAtEnd
to reduce circular auto-imports (#28822)buildDir
for unimport (#28899)<NuxtErrorBoundary>
(#28901)modules
array (#28922)filePath
(#28925)runWithContext
generic (#28926)inheritAttrs: false
for fragment components (#28939)<script>
blocks (4fd24381c)isNuxtMajorVersion
export (#29016)useError
(#28996)💅 Refactors
vite:preloadError
event (#28862)📖 Documentation
useFetch
parameter signature (#28993)🏡 Chore
noUncheckedSideEffectImports
(#28903)pending triage
to blank issues (#28923)htmlnano
+ pin workflow deps (#28946)✅ Tests
route
in template (#28967)🤖 CI
❤️ Contributors
v3.13.1
Compare Source
👀 Highlights
Although this is a patch release, there are two features I'd love to draw your attention to.
useId
now uses a built-in Vue composable for stable ids between server + client! https://github.com/nuxt/nuxt/pull/28285experimental.buildCache
feature now allows for quicker app rebuilds https://github.com/nuxt/nuxt/pull/28726As always, feedback is appreciated 🙏 ❤️
✅ 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
ServerPlaceholder
for ssr client components (#28563)🩹 Fixes
serverDir
relative to root (#28700)MiddlewareKey
(#28676)NuxtLink
(#28738)NuxtOptions
as well as config (#28747)CookieStore
events (#28760)appConfig
with non-iterable objects (#28773)isNuxtError
type inference (#28814)💅 Refactors
useId
(#28285)📖 Documentation
query
returned value fromuseRoute()
(#28743)--frozen-lockfile
when installing dependencies (#28794)🏡 Chore
tinyexec
internally (#28684)tinyglobby
internally (#28686)✅ Tests
❤️ Contributors
v3.13.0
Compare Source
👀 Highlights
I'm pretty excited about this release - we've ported some features we had planned for Nuxt v4 back to v3, as well as a raft of bug fixes and performance improvements - as usual.
Here are a few of things I'm most excited about.
🏘️ Route Groups
We now support naming directories with parentheses/brackets to organise your routes without affecting the path.
For example:
This will produce
/
,/about
and/contact
pages in your app. Themarketing
group is ignored for purposes of your URL structure.Read more in the original PR.
🏝️ Islands and Head Metadata
It's now possible for server component islands to manipulate the head, such as by adding SEO metadata when rendering.
Read more in #27987.
🪝 Custom Prefetch Triggers
We now support custom prefetch triggers for
NuxtLink
(#27846).For example:
It's also possible to enable/disable these globally for your app and override them per link.
For example:
🗺️ Better Server Source Maps
When running with
node --enable-source-maps
, you may have noticed that the source maps for the Vue files in your server build pointed to the Vite build output (something like.nuxt/dist/server/_nuxt/index-O15BBwZ3.js
).Now, even after your Nitro build, your server source maps will reference your original source files (#28521).
Note that one of the easiest ways of improving your build performance is to turn off source maps if you aren't using them, which you can do easily in your
nuxt.config
:🎁 New Features for Module Authors
In the run-up to Nuxt v4, we're working on adding some key functionality for module authors, including a new
isNuxtMajorVersion
utility where required (#27579) and better inferred typing for merged module options using the newdefineNuxtModule().with()
method (#27520).✨ Improved Dev Warnings
We no longer warn when using data fetching composables in middleware (#28604) and we warn when user components' names begin with Lazy (#27838).
🚨 Vue TypeScript Changes
For a while, in the Vue ecosystem, we've been augmenting
@vue/runtime-core
to add custom properties and more tovue
. However, this inadvertently breaks the types for projects that augmentvue
- which is now the officially recommended in the docs way to augment these interfaces (for example, ComponentCustomProperties, GlobalComponents and so on).This means all libraries must update their code (or it will break the types of libraries that augment
vue
instead).We've updated our types in Nuxt along these lines but you may experience issues with the latest
vue-router
when used with libraries which haven't yet done so.Please create an issue with a reproduction - I'll happily help create a PR to resolve in the upstream library in question. Or you may be able to work around the issue by creating a
declarations.d.ts
in the root of your project with the following code (credit):✅ 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
🚀 Enhancements
routes
function inrouter.options
(#27644)isNuxtMajorVersion
compatibility util (#27579).with
for better module options types (#27520)Lazy
(#27838)usePreviewMode
(#28371)prepend
option toaddRouteMiddleware
(#28496)__NUXT__
when using multi-app (#27263)🔥 Performance
decode
function only for named cookie (#28215)getCachedData
(#28472)🩹 Fixes
definePageMeta
in client-only pages (#28246)dist/runtime/
in tsconfig includes (#28237)assetsDir
(59f0099f4)serverDir
(#28249)vite-plugin-vue
(#28307)scroll-padding-top: auto
in scrollBehavior (#28320)runtimeConfig.public
is reactive on client (#28443)nuxt/scripts
(#28449)@vue/runtime-core
and@vue/runtime-dom
(#28446)baseURL
for public assets in dev (#28482)useFetch
(#28517)vue
, not sub-packages (#28542)route.meta
(#28441)validate
method (#28612)prefetchOn
prop (#28630)📖 Documentation
vue
lang to sample code (#28247)splitSetCookieString
fromcookie-es
(29f95ae0d)headers.getSetCookie
(45c6df9a4)bunx
->bun x
(#28277)@see
blocks (#28270)mountSuspended
(#28463)options
type in custom useFetch recipe (#28389)🏡 Chore
✅ Tests
pageTransition
in client-only page (#27839)SharedComponent
in server head (510f3e28f)🤖 CI
❤️ Contributors
nuxt/test-utils (@nuxt/test-utils)
v3.14.4
Compare Source
compare changes
🩹 Fixes
NODE_ENV
when running built server (#969)❤️ Contributors
v3.14.3
Compare Source
compare changes
🩹 Fixes
directives
tomountSuspended
(#960)directives
torenderSuspended
(cf1b48ff)🏡 Chore
Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.
This PR was generated by Mend Renovate. View the repository job log.