3.15.2 is the next regularly scheduled patch release.
π Highlights
π₯ Startup performance improvements
It is worth noting that this release includes some pretty significant performance improvements which you should notice particularly in the startup time. In my tests in the nuxt monorepo,
fixture | time to vite build complete (v3.15.1) | time to vite build complete (v3.15.2) |
---|---|---|
minimal | 850ms | 710ms |
everything bagel | 3,021ms | 1,690ms |
There's more improvement to do here but hopefully these are good numbers!
π¦ CLI refactor
To improve performance within Nuxt projects, we've published a new @nuxt/cli
distribution of nuxi
, which is used under-the-hood in nuxt
(see issue). This should behave exactly the same and nothing needs to be updated in your projects (for example, you will continue to use the nuxi
or nuxt
commands). The only significant change is that it no longer inlines dependencies. Feedback is welcome π
β Upgrading
As usual, our recommendation for upgrading is to run:
npx nuxi@latest upgrade --force
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
π₯ Performance
- nuxt: Remove code duplication in client-only (#30460)
- nuxt: Use lighter
@nuxt/cli
dependency (#30526) - kit: Remove iterations when resolving module path (#30562)
- nuxt: Avoid checking fs for existence of scanned pages (#30581)
- nuxt: Defer version/config warnings to after build (#30567)
π©Ή Fixes
- nuxt: Collect all identifiers before extracting page metadata (#30478)
- nuxt: Don't hoist identifiers declared locally in
definePageMeta
when extracting page metadata (#30490) - kit: Reorder
#build
to the end oftsConfig
paths (#30520) - nuxt: Use
fullPath
instead of empty string in router hmr (#30500) - Relax nuxt version constraints to current (23b968289)
- nuxt: Add import protection for
@nuxt/cli
(618bbc6da) - kit: Fully resolve plugin paths when normalising them (#30540)
- nuxt: Call
page:loading:end
only once with nested pages (#29009) - nuxt: Warn about ignored char while parsing route segment (#30396)
- nuxt: Allow url-specific chars in vfs (#30584)
- nuxt: Do not warn about invalid characters in route groups/catchalls (0249c74bc)
- vite: Provide fallback alias for
#app-manifest
(#30587) - nuxt: Avoid invoking
shouldPrefetch
on the server side (#30591) - nuxt: Decode id before resolving relative imports (#30599)
π Refactors
- kit,nuxt,webpack: Reduce reassignments (#30589)
π Documentation
- Document
--dev
option for the module command (#30477) - Document the add layer command (#30476)
- Update v4 release date (#30514)
- Ensure correct type for
url
inuseFetch
(#30531) - Update link to
@nuxt/module-builder
source (509cf4a5c) - Add
status
detail and enhancegetCachedData
readability (#30536) - Update hash link to correct heading (#30543)
- Update links to unhead source (fef3a59bb)
- Adjust example and additional instructions of
useNuxtData
(#30570) - Resolve many twoslash errors (#30573)
- Add context for
useAsyncData
side effects (#30479) - Update examples to use function declarations for clarity (#30588)
π‘ Chore
- Control dependency import into
nuxt/app
(1adf3e31f) - Ignore automated renovate node engines updates (6895993fb)
π€ CI
- Don't block release on fixtures + add pkg.pr.new (#30548)
- Remove concurrency group from release-pr job (8ac54ff10)
β€οΈ Contributors
- Daniel Roe (@danielroe)
- Alex Liu (@Mini-ghost)
- Anthony Fu (@antfu)
- Camille Coutens (@Kamsou)
- Julien Huang (@huang-julien)
- Peter Buglavecz (@buglavecz)
- ikxin (@ikxin)
- Guspan Tanadi (@guspan-tanadi)
- Vuk Marjanovic (@vmrjnvc)
- Saeid Zareie (@Saeid-Za)
- Matej ΔernΓ½ (@cernymatej)
- ClΓ©ment Ollivier (@clemcode)