-
-
Notifications
You must be signed in to change notification settings - Fork 5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
v3.14.0 #29077
Conversation
Run & review this pull request in StackBlitz Codeflow. |
Issue with Nitropack 2.10.0 causing build failure in Nuxt project After updating Nitropack to version 2.10.0, my Nuxt project fails to build with the error Environment:
Additional Information:
|
@tobychidi would you raise an issue at https://github.com/unjs/nitro ? |
Important Review skippedBot user detected. To trigger a single review, invoke the You can disable this status message by setting the 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
CodeRabbit Configuration File (
|
👀 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):
👉 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)route.meta
#28441 (a248f24f5)🤖 CI
❤️ Contributors