forked from nuxt/nuxt.com
-
Notifications
You must be signed in to change notification settings - Fork 4
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge remote-tracking branch 'upstream/main'
# Conflicts: # content/0.index.yml # content/team.yml
- Loading branch information
Showing
8 changed files
with
1,433 additions
and
711 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,101 @@ | ||
--- | ||
title: Nuxt 3.15 | ||
description: Nuxt 3.15 is out - with Vite 6, better HMR and faster performance | ||
navigation: false | ||
image: /assets/blog/v3.15.png | ||
authors: | ||
- name: Daniel Roe | ||
avatarUrl: https://github.com/danielroe.png | ||
link: https://twitter.com/danielcroe | ||
twitter: danielcroe | ||
date: 2024-12-24T10:00:00.000Z | ||
category: Release | ||
--- | ||
|
||
We're continuing to work on the release of Nitro v3, Nuxt v4 and more. But we're delighted to ship Nuxt v3.15 (just) in time for Christmas. | ||
|
||
## ❄️ 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](https://github.com/nuxt/nuxt/pull/29871)). | ||
|
||
## ⚡️ Vite 6 included | ||
|
||
Nuxt v3.15 includes [Vite 6](https://vite.dev/blog/announcing-vite6) 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](https://vite.dev/guide/migration.html)). 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](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md#600-2024-11-26). | ||
|
||
## 🪵 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](https://developer.chrome.com/docs/devtools/performance/extension) to add support for printing nuxt hook timings in the browser devtools performance panel. | ||
|
||
![CleanShot 2024-11-14 at 15 05 22@2x](https://github.com/user-attachments/assets/57525027-750a-462f-b713-398302aec0cd) | ||
|
||
## 🗺️ 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](https://github.com/nuxt/nuxt/pull/30260) for more info.) | ||
|
||
```ts | ||
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](https://github.com/nuxt/nuxt/pull/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](https://github.com/nuxt/nuxt/pull/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](https://github.com/nuxt/nuxt/pull/30241)). This means you can do something like this: | ||
|
||
```ts | ||
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](https://github.com/nuxt/nuxt/pull/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](https://github.com/nuxt/nuxt/pull/30297)). | ||
|
||
## 🐣 v4 updates | ||
|
||
If A few more changes shipped for the new defaults for v4, including only inlining styles by default for Vue components ([#30305](https://github.com/nuxt/nuxt/pull/30305)). | ||
|
||
## ✅ Upgrading | ||
|
||
As usual, our recommendation for upgrading is to run: | ||
|
||
```sh | ||
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. | ||
|
||
## Full release notes | ||
|
||
::read-more | ||
--- | ||
color: gray | ||
icon: i-simple-icons-github | ||
target: _blank | ||
to: https://github.com/nuxt/nuxt/releases/tag/v3.15.0 | ||
--- | ||
Read the full release notes of Nuxt `v3.15.0`. | ||
:: | ||
|
||
A huge thank you to everyone who's been a part of this release. ❤️ | ||
|
||
Don't hesitate to let us know if you have any feedback or issues! 🙏 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,7 +1,7 @@ | ||
{ | ||
"name": "nuxt.com", | ||
"version": "0.3.11", | ||
"packageManager": "[email protected].0", | ||
"packageManager": "[email protected].1", | ||
"scripts": { | ||
"dev": "nuxi dev", | ||
"build": "nuxi build", | ||
|
@@ -13,12 +13,12 @@ | |
"test": "pnpm lint && pnpm typecheck" | ||
}, | ||
"dependencies": { | ||
"@iconify-json/heroicons": "^1.2.1", | ||
"@iconify-json/logos": "^1.2.3", | ||
"@iconify-json/heroicons": "^1.2.2", | ||
"@iconify-json/logos": "^1.2.4", | ||
"@iconify-json/octicon": "^1.2.2", | ||
"@iconify-json/ph": "^1.2.1", | ||
"@iconify-json/simple-icons": "^1.2.15", | ||
"@iconify-json/uil": "^1.2.1", | ||
"@iconify-json/ph": "^1.2.2", | ||
"@iconify-json/simple-icons": "^1.2.16", | ||
"@iconify-json/uil": "^1.2.3", | ||
"@nuxt/content": "^2.13.4", | ||
"@nuxt/fonts": "^0.10.3", | ||
"@nuxt/image": "^1.8.1", | ||
|
@@ -32,7 +32,7 @@ | |
"@vueuse/nuxt": "^12.0.0", | ||
"feed": "^4.2.2", | ||
"floating-vue": "^5.2.2", | ||
"nuxt": "^3.14.1592", | ||
"nuxt": "^3.15.0", | ||
"nuxt-og-image": "^4.0.1", | ||
"ofetch": "^1.4.1", | ||
"perfect-debounce": "^1.0.0", | ||
|
@@ -42,15 +42,15 @@ | |
"ufo": "^1.5.4" | ||
}, | ||
"devDependencies": { | ||
"@nuxt/eslint": "^0.7.3", | ||
"@nuxt/icon": "^1.10.1", | ||
"@nuxt/eslint": "^0.7.4", | ||
"@nuxt/icon": "^1.10.3", | ||
"@nuxt/test-utils": "^3.15.1", | ||
"@nuxtjs/turnstile": "^0.9.11", | ||
"@testing-library/vue": "^8.1.0", | ||
"capture-website": "^4.2.0", | ||
"eslint": "^9.17.0", | ||
"nuxt-content-twoslash": "0.1.2", | ||
"shiki": "^1.24.2", | ||
"shiki": "^1.24.4", | ||
"twoslash": "^0.2.12", | ||
"typescript": "^5.6.3", | ||
"vitest": "^2.1.8", | ||
|
Oops, something went wrong.