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 --forceThis 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/clidependency (#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
definePageMetawhen extracting page metadata (#30490) - kit: Reorder
#buildto the end oftsConfigpaths (#30520) - nuxt: Use
fullPathinstead 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:endonly 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
shouldPrefetchon the server side (#30591) - nuxt: Decode id before resolving relative imports (#30599)
π Refactors
- kit,nuxt,webpack: Reduce reassignments (#30589)
π Documentation
- Document
--devoption for the module command (#30477) - Document the add layer command (#30476)
- Update v4 release date (#30514)
- Ensure correct type for
urlinuseFetch(#30531) - Update link to
@nuxt/module-buildersource (509cf4a5c) - Add
statusdetail and enhancegetCachedDatareadability (#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
useAsyncDataside 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)