npm nuxt 3.15.2

19 hours ago

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.1)
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

compare changes

πŸ”₯ 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 of tsConfig 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 in useFetch (#30531)
  • Update link to @nuxt/module-builder source (509cf4a5c)
  • Add status detail and enhance getCachedData 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

Don't miss a new nuxt release

NewReleases is sending notifications on new releases.