Skip to content

Releases: nuxt/nuxt

v3.15.4

29 Jan 08:07
244da17
Compare
Choose a tag to compare

3.15.4 is the next patch release.

βœ… 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

🩹 Fixes

  • nuxt: Improve error logging when parsing with acorn (#30754)
  • nuxt: Clear island uid before saving into the payload (#30767)
  • kit: Load @nuxt/schema from nuxt package dir (#30774)
  • nuxt: Allow restarting nuxt on paths outside srcDir (#30771)
  • nuxt: Don't warn about calling useRoute in SFC setup (#30788)
  • webpack: Disallow cross-site requests in no-cors mode (#30757)
  • vite: Restore externality for dev server externals (#30802)

πŸ’… Refactors

  • vite: Use new rollup chunk.names for asset names (#30780)

❀️ Contributors

v3.15.3

24 Jan 23:39
048f974
Compare
Choose a tag to compare

3.15.3 is the next regularly scheduled patch release.

πŸ‘€ Highlights

CORS configuration for dev server

Alongside a range of improvements, we've also shipped a significant fix to impose CORS origin restrictions on the dev server. This applies to your Vite or Webpack/Rspack dev middleware only.

This is a significant/breaking change we would not normally ship in a patch but it is a security fix (see GHSA-4gf7-ff8x-hq99 and GHSA-2452-6xj8-jh47) and we urge you to update ASAP.

You can configure the allowed origins and other CORS options via the devServer.cors options in your nuxt.config, which may be relevant if you are developing with a custom hostname:

export default defineNuxtConfig({
  devServer: {
    cors: {
      origin: ['https://custom-origin.com'],
    },
  },
})

βœ… 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

  • kit,nuxt: Don't resolve paths from local layers/modules (#30650)
  • nuxt: Reduce number of mkdirSync calls (#30651)
  • nuxt: Reduce unnecessary template updating (#30684)
  • kit: Reduce duplication between findPath and resolvePath (#30682)
  • kit: Run components compat check synchronously (#30685)
  • nuxt: Early return from annotation for non-object syntax plugins (#30683)
  • nuxt: Enable Transition component only on client side (#30720)

🩹 Fixes

  • vite: Override previous #app-manifest alias (#30618)
  • kit,nuxt,schema,vite: Improve watching behaviour (#30620)
  • nuxt: Fall back to plugin.src for variable name generation (#30649)
  • schema: Allow overriding dev/test environment value (#30667)
  • vite: Drop unneeded call to invalidate module (d2a95c542)
  • vite: Add back invalidateModule call (9bd71e498)
  • nuxt: Do not warn about [[ optional dynamic params (#30619)
  • vite: Inline shared folder in dev mode (#30690)
  • nuxt: Deep clone extracted page meta (#30717)
  • vite,webpack: Restrict access via cors to local origins + allow configuration via devServer.cors (406db5b4d)

πŸ’… Refactors

  • vite: Drop externality and use vite internal config (#30634)

πŸ“– Documentation

  • Add link to custom useFetch example (#30629)
  • Fix example command (#30628)
  • Fix links to nuxi source code (4fabe0025)
  • Add description for prefetch and other details of NuxtLink (#30614)
  • Update nuxt/content example (542987627)
  • Adjust examples, type and description for addRouteMiddleware (#30656)
  • Explain how to use ClientOnly with onMounted hook (#30670)
  • Update links to unhead source (eb5344b43)
  • Add more context about navigation mode in callOnce composable (#30612)
  • Add example on how to disable default routes for ssg (#30729)

πŸ“¦ Build

  • schema: Use new inlineDependencies option (01adefcec)

🏑 Chore

πŸ€– CI

  • Run bundle size assertion outside of matrix (#30688)
  • Reenable nuxt benchmarking (#30711)

❀️ Contributors

v3.15.2

15 Jan 15:36
87a0ee5
Compare
Choose a tag to compare

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

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

v3.15.1

05 Jan 12:08
fdf6e87
Compare
Choose a tag to compare

3.15.1 is the next regularly scheduled patch release.

βœ… 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: Skip experimental async context transform in client build (#30360)
  • schema: Drop unneeded type-only schema dependencies (#30411)
  • rspack,webpack: Drop lodash-es dependency (#30409)
  • nuxt: Drop pathe browser dep for deep server components (#30456)

🩹 Fixes

  • nuxt: Update module path for defaults (#30371)
  • nuxt: Ignore non-reference identifiers when extracting page metadata (#30381)
  • nuxt: Pass nuxt instance to resolvePagesRoutes (e4a372e12)
  • schema: Support pfx certificate for dev server (#30412)
  • nuxt: Use node location instead of range for route meta property extraction (#30447)
  • schema: Override vueCompilerOptions.plugins type (#30454)
  • nuxt: Respect baseURL when ignoring prerendered manifest (#30446)
  • nuxt: Respect router.options when hmring routes (#30455)

πŸ’… Refactors

  • nuxt: Use consola with nuxt tag instead of console (#30408)

πŸ“– Documentation

  • Update references to lodash and recommend es-toolkit (8e2ca5bdc)
  • Add warning about prerendering (#30437)

🏑 Chore

❀️ Contributors

v3.15.0

24 Dec 23:51
1acc9a0
Compare
Choose a tag to compare

πŸ‘€ Highlights

❄️ Snowfall!

Happy holidays! You'll notice when you start Nuxt that (if you're in the Northern Hemisphere) there's some snow on the loading screen (#29871).

⚑️ Vite 6 included

Nuxt v3.15 includes Vite 6 for the first time. Although this is a major version, we expect that this won't be a breaking change for Nuxt users (see full migration guide). However, please take care if you have dependencies that rely on a particular Vite version.

One of the most significant changes with Vite 6 is the new Environment API, which we hope to use in conjunction with Nitro to improve the server dev environment. Watch this space!

You can read the full list of changes in the Vite 6 changelog.

πŸͺ΅ Chromium devtools improvements

We talk a lot about the Nuxt DevTools, but v3.15 ships with better integration in dev mode for Chromium-based browser devtools.

We now use the Chrome DevTools extensibility API to add support for printing nuxt hook timings in the browser devtools performance panel.

CleanShot 2024-11-14 at 15 05 22@2x

πŸ—ΊοΈ Navigation mode for callOnce

callOnce is a built-in Nuxt composable for running code only once. For example, if the code runs on the server it won't run again on the client. But sometimes you do want code to run on every navigation - just avoid the initial server/client double load. For this, there's a new mode: 'navigation' option that will run the code only once per navigation. (See #30260 for more info.)

await callOnce(() => counter.value++, { mode: 'navigation' })

πŸ₯΅ HMR for templates, pages + page metadata

We now implement hot module reloading for Nuxt's virtual files (like routes, plugins, generated files) as well as for the content of page metadata (within a definePageMeta macro) (#30113).

This should mean you have a faster experience in development, as well as not needing to reload the page when making changes to your routes.

πŸ“‹ Page meta enhancements

We now support extracting extra page meta keys (likely used by module authors) via experimental.extraPageMetaExtractionKeys (#30015). This enables module authors to use this information at build time, in the pages:resolved hook.

We also now support local functions in definePageMeta (#30241). This means you can do something like this:

function validateIdParam(route) {
  return !!(route.params.id && !isNaN(Number(route.params.id)))
}

definePageMeta({
  validate: validateIdParam,
})

πŸ”₯ Performance improvements

We now preload the app manifest in the browser if it will be used when hydrating the app (#30017).

We'll also tree shake vue-router's hash mode history out of your bundle if we can - specifically, if you haven't customised your app/router.options.ts (#30297).

🐣 v4 updates

A few more changes shipped for the new defaults for v4, including only inlining styles by default for Vue components (#30305).

βœ… 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

πŸš€ Enhancements

  • deps: Update dependency vite to v6 (3.x) (#30044)
  • kit: Allow module default options to be async (#29980)
  • nuxt: Add new types to vue preset (#29819)
  • nuxt: Experimental extraPageMetaExtractionKeys (#30015)
  • nuxt,schema: Allow setting serialisable vue app config (#28873)
  • nuxt: Print nuxt hook timings in browser devtools (#29922)
  • nuxt: Support vue directive auto-imports within unimport (#29818)
  • schema: Add snow effect on loading screen in winter (#29871)
  • nuxt: Support local functions in definePageMeta (#30241)
  • nuxt: Add mode: 'navigation' to callOnce (#30260)

πŸ”₯ Performance

  • nuxt: Preload app manifest (#30017)
  • nuxt: Use static hashMode option (#30297)
  • vite: Use vite to clear screen (#30315)
  • schema: Only inline styles for vue components (#30305)
  • nuxt: Remove useId from composable key plugin (#30328)

🩹 Fixes

  • nuxt: Check if nuxt link observer is null (#30038)
  • nuxt: Unref the default value of asyncData when clearing (#30041)
  • kit: Re-export addServerTemplate (a02af2348)
  • Remove unused dependencies and tidy project (#30043)
  • vite: Add back some dev-bundler dependencies (976024f16)
  • nuxt: Do not persist extraExtractionKeys on runtime route.meta (ae9f42f4a)
  • nuxt: Allow array/object style value for head components (#29999)
  • nuxt: Tidy up remnants of previous useId implementation (40f437d25)
  • kit,nuxt: Provide buildDir to normalizeTemplate (#30115)
  • kit: Add better logging for non-resolved modules (#30116)
  • nuxt: Correct return type of useRequestFetch (#30117)
  • nuxt,vite: Hmr for templates, pages + page metadata (#30113)
  • nuxt: Use nitropack rather than nitro import (2d5b53b23)
  • kit: Use resolved module paths for transpile + modulesDir (#30136)
  • Update engines.node to match dependencies (#30139)
  • schema: Allow routerOptions.history to return null (#30192)
  • nuxt: Render client page directly when not hydrating (#30061)
  • nuxt: Use useId for island client component teleport id (#30151)
  • nuxt: De-default async layout components (#30203)
  • nuxt: Correct types for nuxt and nuxt/app (#30148)
  • nuxt,schema: Allow showing spa loader til after hydration (#29776)
  • nuxt: Remove whitespace around spa loading template (070bd103c)
  • nuxt: Hoist environment types (#30230)
  • schema: Hoist nitro runtime types (73761dade)
  • nuxt: Ensure getRouteRules works with nitro signature (#30277)
  • nuxt: Respect replace in middleware with navigateTo (#30283)
  • nuxt: Update import paths for nitropack (f220314a5)
  • nuxt: Don't use <RouterLink> for links starting with # (#30190)
  • vite: Ignore optimising #app-manifest (ec613e533)
  • nuxt: Use useId for client-fallback component uid (#30314)
  • schema: Gate inline style change behind v4 check (ceac86e34)
  • nuxt: Do not resolve deep imports for @vitest/ (4171a1076)
  • kit: Initialize tsconfig paths in addTemplate if undefined (#30348)
  • nuxt: Treat client useAsyncData calls as async boundaries (#30343)
  • nuxt: Initialise import.meta.hot.data (b1cf5781d)

πŸ’… Refactors

  • Move composable-keys plugin into nuxt core (#30029)
  • nuxt: Simplify and improve core plugins that parse ast (#30088)
  • nuxt: Prefix all core modules with nuxt: (#30028)

πŸ“– Documentation

  • Remove extra new line in frontmatter (#30031)
  • Text capitalization for ti...
Read more

v3.14.1592

19 Nov 20:54
3894e9d
Compare
Choose a tag to compare

3.14.1592 is the next patch release.

πŸ‘‰ Changelog

compare changes

🩹 Fixes

  • rspack: Update webpackbar with support for rspack (#29823)
  • nuxt: Assign default name to component without setup (#29869)
  • kit: Use dst to deduplicate templates when adding them (#29895)
  • nuxt: Handle empty plugin files (d44408e87)
  • vite: Use resolved nuxt template dst to invalidate modules (6cd3352de)
  • nuxt: Return null map for empty plugin metadata (302a66da9)
  • kit: Resolve module paths before appending subpaths (#29955)
  • nuxt: Recompile templates on change events (#29954)
  • nuxt: Do not include <NuxtWelcome> when building (#29956)
  • nuxt: Allow scanning metadata from 2+ files at same path (#29969)
  • nuxt: Do not disallow importing nitro dependencies (#29975)

πŸ’… Refactors

  • nuxt: Define layouts as async vue components (#29957)

πŸ“– Documentation

  • Update custom environment example (e3759ad55)
  • Update minimal example (7973f5ed4)
  • Add tip about islands directory (#29913)
  • Fix typo in composable name (#29910)
  • Rename @nuxt/auth to @nuxt/auth-utils in roadmap (#29906)
  • Capitalize text (#29938)
  • Improve clarity in seo meta example (#29930)
  • Update getting started to include WebStorm (#29845)

🏑 Chore

  • Remove unused imports and update eslint config (#29876)

βœ… Tests

πŸ€– CI

❀️ Contributors

v3.14.159

06 Nov 11:37
6256890
Compare
Choose a tag to compare

3.14.159 is a hotfix release to address regressions in v3.14.

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

  • nuxt: Update nitropack preset directory (#29780)
  • kit: Fall back to metaΒ version if there's no module.json (#29793)
  • kit: Use mlly to resolve module paths to avoid cjs fallback (#29799)
  • webpack,rspack: Add adapter for webpack-dev-middleware (#29806)
  • nuxt: Remove null-byte prefix for virtual files (#29809)
  • kit: Convert module path to file url before reading meta (fb833ac64)

πŸ“– Documentation

  • Capitalize titles (#29768)
  • Fix rou3 link in nitro.js (#29775)
  • Fix tip formatting (#29792)
  • Add link to h3 blogpost (#29794)
  • Remove outdated cloudflare tip (auto minify deprecated) (#29812)

🏑 Chore

  • nuxt: Remove redundant type (#29810)

❀️ Contributors

v3.14.0

04 Nov 16:06
4242052
Compare
Choose a tag to compare

3.14.0 is the next minor release.

πŸ‘€ 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 using compatibilityVersion: 4, this means it's not inside your app/ folder.)

πŸ¦€ rspack builder

We'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 use unplugin 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 set builder: 'rspack' in your nuxt config file.

✨ New composables

We have new useResponseHeader and useRuntimeHook 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.

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

  2. 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 calling pages:extend. Instead, we have a new pages:resolved hook, which is called after pages:extend, after all pages have been augmented with their metadata. I'd recommend opting into this by setting experimental.scanPageMeta to after-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):

  • auto-imported directives from modules (#29203)
  • 'isolated' page renders (#29366)
  • delayed hydration (#26468)

βœ… 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

πŸš€ Enhancements

  • deps: Upgrade to latest version of jiti (#27995)
  • kit,nuxt,vite,webpack: Reimplement cjs utils using jiti (#29073)
  • nuxt: Normalise component names to match nuxt pattern (#28745)
  • kit,schema: Add addServerTemplate utility (#29320)
  • nuxt: Add useResponseHeader composable (#27131)
  • rspack,webpack: Add rspack builder (#29142)
  • nuxt,schema: pages:resolved hook + scan meta post extend (#28861)
  • nuxt: Allow enabling route props in definePageMeta (#29586)
  • schema,nuxt: Add shared/ folder and #shared alias (#28682)
  • nuxt: Allow chunk error or manifest update -> reload (#28160)
  • nuxt: Add useRuntimeHook composable (#29741)

πŸ”₯ Performance

  • nuxt: Remove unneeded second call to useNuxtApp (#29514)
  • vite: Avoid redundant postcss plugins overwrite (#29619)
  • kit,nuxt,vite,webpack: Hoist regex patterns (#29620)

🩹 Fixes

  • nuxt: Simplify plugin InjectionType template conditional (#29023)
  • nuxt: Access server build from webpackΒ memfs (#29027)
  • nuxt: Do not resolve non-absolute component paths (#29036)
  • nuxt: Defer unsetting error handler until suspense resolves (#29037)
  • nuxt: Pass DOMException as fetch abort exception (#29058)
  • vite: Don't force protocol if disabled devServer.https (#29049)
  • nuxt: Empty nitro buildDir in dev mode (#29068)
  • nuxt: Don't resolve relative import type paths for deps (#29069)
  • kit: Handle passing 'bare' relative paths to modules (c7fecd8a1)
  • kit: Try resolving module path from each node_modules dir (70a622d43)
  • kit,vite,webpack: Resolve postcss paths from each modules dir (#29096)
  • kit,vite,webpack: Strip node_modules/ from parent urls (5bd42c893)
  • nuxt: Add crossorigin attribute for stylesheets (#29138)
  • nuxt: Use routeRules to hint pages to prerender (#29172)
  • nuxt: Pass absolute external link urls to link:prefetch (#29321)
  • nuxt: Error on build when required module is missing (#29287)
  • nuxt: Prevent 404 when hitting component test endpoint (cb725f014)
  • nuxt: Avoid throwing 404 error before middleware finishes (#29054)
  • schema: Use ConfigLayer type from c12 (#29370)
  • nuxt: Fix nested page types in typedPages (#29352)
  • nuxt: Allow islands to manipulate head client-side (#29186)
  • vite: Dim repeat count in logs (#29392)
  • schema: Mark configFile as required in layer type (3bbcd7d21)
  • nuxt: Remove vue compiler hints from auto import (#29713)
  • vite: Update signature for createIsExternal (686be8168)
  • nuxt: Respect existing props value in definePageMeta (#29683)
  • schema: Hoist nitropack/types to ensure api routes are typed (54096875e)

πŸ’… Refactors

  • nuxt: Use addBuildPlugin internally (#29157)
  • nuxt,schema,vite,webpack: Use unplugin for vfs (#29165)

πŸ“– Documentation

  • Use defineNuxtComponent instead of defineComponent (#29011)
  • Remove duotone icons for clarity (#29040)
  • Fix typo (#29045)
  • Remove specific Nuxt 4 release date (#29151)
  • Remove redundant newlines and indentations (#29190)
  • Add links to short videos from daniel (#29185)
  • Fix comments typo in auto-imports example (#29195)
  • Add missing word (#29230)
  • Add a section about useRequestFetch and event.$fetch (#29099)
  • Add example of typing custom useFetch errors (#29253)
  • Ensure manifest code snippet works with pnpm (#29273)
  • Consistent directory structure (#29292)
  • Update to new ofetch...
Read more

v3.13.2

15 Sep 21:27
a507253
Compare
Choose a tag to compare

3.13.2 is the next regularly scheduled patch release.

βœ… 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 interop default for dynamic components (#28912)

🩹 Fixes

  • nuxt: Fix ssr log querySelector (#28864)
  • schema: Enable propsDestructure by default (#28830)
  • nuxt: Ensure injected route has enumerable keys (#28841)
  • nuxt: Don't override vue instance with legacy asyncData (#28842)
  • nuxt: Render server errors with ssr: false (#28834)
  • nuxt: Resolve full component paths (#28843)
  • nuxt: Improve accuracy of module resolution conditions (#28846)
  • nuxt: Log more context of prerendering errors (#28895)
  • nuxt: Enable injectAtEnd to reduce circular auto-imports (#28822)
  • nuxt: Ensure we process files in buildDir for unimport (#28899)
  • nuxt: Do not accept attrs on <NuxtErrorBoundary> (#28901)
  • nuxt,schema: Accept any module in inline modules array (#28922)
  • nuxt: Fall back to original component filePath (#28925)
  • nuxt: Make runWithContext generic (#28926)
  • nuxt: Set inheritAttrs: false for fragment components (#28939)
  • nuxt: Use case-insensitive regexp for <script> blocks (4fd24381c)
  • nuxt: Ensure component imports are injected last (#28944)
  • nuxt: Catch chunk errors directly in navigation (820908696)
  • nuxt: Add missing isNuxtMajorVersion export (#29016)
  • nuxt: Correct type for useError (#28996)

πŸ’… Refactors

  • nuxt: Use vite:preloadError event (#28862)

πŸ“– Documentation

  • Add known limitations for app.config.ts (#28875)
  • Typo fixed missing closing angle bracket (#28880)
  • Update useFetch troubleshooting section (#28918)
  • Capitalize text (#28972)
  • Fix typo (#28983)
  • Add clarity to useFetch parameter signature (#28993)
  • Remove confusing reference to 'SPA' (#28991)

🏑 Chore

  • Use consola to log out compatibility info (#28854)
  • vite: Use correct type import (3f508d521)
  • Enable noUncheckedSideEffectImports (#28903)
  • Add pending triage to blank issues (#28923)
  • Correct comment style (c4181b5a2)
  • Fix typos (462380d45)
  • Refresh lockfile, use htmlnano + pin workflow deps (#28946)
  • Pin dep + workflow by hash (4d81334c9)
  • ui-templates: Use class-selector (043329f52)

βœ… Tests

  • Collect bundle sizes in parallel (1ce81069d)
  • Add regression test for using route in template (#28967)
  • Convert set to array (6ee3b3adc)
  • Switch inline snapshot to object comparison (ae5135363)

πŸ€– CI

  • Access issue number from payload (8e4585c14)
  • Configure codeql to ignore tests (d5f98a757)
  • Add default permissions for workflows (3ede01cd4)
  • Scan source files with codeql (#28943)
  • Skip setting up node before codeql scan (c4d7c92e9)

❀️ Contributors

v3.13.1

04 Sep 09:43
9983e83
Compare
Choose a tag to compare

3.13.1 is the next regularly scheduled patch release.

πŸ‘€ Highlights

Although this is a patch release, there are two features I'd love to draw your attention to.

  1. πŸ†” useId now uses a built-in Vue composable for stable ids between server + client! #28285
  2. πŸ”₯ a new experimental.buildCache feature now allows for quicker app rebuilds #28726

As always, feedback is appreciated πŸ™ ❀️

βœ… 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: Cache vue app build outputs (#28726)
  • nuxt: Use ServerPlaceholder for ssr client components (#28563)
  • nuxt: Use reducer array + handle modified proto (#28768)

🩹 Fixes

  • schema: Resolve user-provided serverDir relative to root (#28700)
  • nuxt: Handle mismatching declaration/plugin extensions (#28709)
  • nuxt: Do not accept arbitrary strings for MiddlewareKey (#28676)
  • nuxt: Do not pass listeners to custom NuxtLink (#28738)
  • nuxt: Generate basic jsdoc for module config entry (#27689)
  • nuxt: Augment NuxtOptions as well as config (#28747)
  • nuxt: Improve error logging in import protections (#28753)
  • nuxt: Handle deleted cookies from CookieStore events (#28760)
  • nuxt: Allow updating appConfig with non-iterable objects (#28773)
  • nuxt: Improve isNuxtError type inference (#28814)

πŸ’… Refactors

  • nuxt: Update to vue v3.5 + native useId (#28285)

πŸ“– Documentation

  • Fix typo (#28724)
  • Update broken/redirected links (#28739)
  • Capitalize text (#28734)
  • Updated line number for nuxt build-time hooks (#28746)
  • Add missing query returned value from useRoute() (#28743)
  • Persist package manager choice in code blocks (#28514)
  • Fix postcss codeblock typo (#28801)
  • Include --frozen-lockfile when installing dependencies (#28794)

🏑 Chore

  • Use tinyexec internally (#28684)
  • Use tinyglobby internally (#28686)
  • Trim tag (#28687)
  • Fix ci typo (#28721)
  • Tidying workflows + add sherif workflow (#28793)
  • Ignore eslint warnings about console logging (#28795)

βœ… Tests

❀️ Contributors