Skip to content

Commit

Permalink
feat(blog): переведена статья о v 3.14 (#84)
Browse files Browse the repository at this point in the history
Signed-off-by: Evgeniy Gromin <[email protected]>
  • Loading branch information
JonikUl authored Dec 27, 2024
1 parent c78fdb2 commit 546b7f4
Showing 1 changed file with 35 additions and 35 deletions.
70 changes: 35 additions & 35 deletions content/7.blog/27.v3-14.md
Original file line number Diff line number Diff line change
@@ -1,75 +1,75 @@
---
title: Nuxt 3.14
description: Nuxt 3.14 is out - with a new rspack builder, shared folder, and performance enhancements!
description: Вышел Nuxt 3.14 - с новым билдером rspack, директорией shared и улучшениями производительности!
navigation: false
image: /assets/blog/v3.14.png
authors:
- name: Daniel Roe
- name: Дэниел Ро
avatarUrl: https://github.com/danielroe.png
link: https://twitter.com/danielcroe
twitter: danielcroe
date: 2024-11-04T10:00:00.000Z
category: Release
category: Релиз
---

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!)
За кулисами ведется активная работа по подготовке к выпуску Nuxt v4 (особенно на стороне `unjs` в связи с подготовкой к Nitro v3!)

### ⚡️ Faster starts powered by `jiti`
### ⚡️ Более быстрый запуск за счет `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](https://github.com/unjs/jiti/releases/tag/v2.0.0), but one of the most important pieces is native node esm import (where possible), which should mean a faster start.
Загрузка файла конфигурации Nuxt, а также модулей и другого кода во время сборки теперь осуществляется с помощью `jiti` v2. Вы можете узнать больше в [информации о релизе jiti v2](https://github.com/unjs/jiti/releases/tag/v2.0.0), но одна из самых важных частей — это нативный импорт модулей esm (где это возможно), что должно означать более быстрый запуск

### 📂 Shared folder for code and types shared with client/server
### 📂 Директория shared для кода и типов, совместно используемых клиентом/сервером

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.
Вы никогда не должны импортировать код приложения Vue в код Nitro (или наоборот). Но это приводит к возникновению проблем, когда дело доходит до совместного использования типов или утилит, которые _не_ полагаются на контексты Nitro/Vue.

For this, we have a new `shared/` folder ([#28682](https://github.com/nuxt/nuxt/pull/28682)). You can't import Vue or nitro code _into_ files in this folder, but it produces auto-imports (if you're using `compatibilityVersion: 4`) which you can consume throughout the rest of your app.
Для этого теперь есть новая директория `shared/` ([#28682](https://github.com/nuxt/nuxt/pull/28682)). Вы не можете импортировать код Vue или Nitro _в_ файлы в этой директории, но из нее производится автоматический импорт (если вы используете `compatibilityVersion: 4`), который вы можете использовать во всем остальном приложении.

If needed you can use the new `#shared` alias which points to this folder.
При необходимости вы можете использовать новый псевдоним `#shared`, который указывает на эту директорию.

The shared folder is alongside your `server/` folder. (If you're using `compatibilityVersion: 4`, this means it's not inside your `app/` folder.)
Директория shared находится рядом с `server/`. (Если вы используете `compatibilityVersion: 4`, это означает, что она не находится внутри `app/`.)

### 🦀 `rspack` builder
### 🦀 Билдер `rspack`

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.
Мы рады объявить о новом билдере первого класса для Nuxt для `rspack`. Он все еще экспериментальный, но мы переработали внутреннюю виртуальную файловую систему Nuxt на использование `unplugin`, чтобы сделать это возможным.

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](https://github.com/danielroe/nuxt-rspack-starter) - or just install `@nuxt/rspack-builder` and set `builder: 'rspack'` in your nuxt config file.
👉 Чтобы попробовать, вы можете использовать [этот стартер](https://github.com/danielroe/nuxt-rspack-starter) или просто установить `@nuxt/rspack-builder` и указать `builder: 'rspack'` в файле конфигурации Nuxt.

### New composables
### Новые композаблы

We have new `useResponseHeader` and `useRuntimeHook` composables ([#27131](https://github.com/nuxt/nuxt/pull/27131) and [#29741](https://github.com/nuxt/nuxt/pull/29741)).
Теперь есть новые композаблы `useResponseHeader` и `useRuntimeHook` ([#27131](https://github.com/nuxt/nuxt/pull/27131) и [#29741](https://github.com/nuxt/nuxt/pull/29741)).

### 🔧 New module utilities
### 🔧 Новые утилиты модуля

We now have a new `addServerTemplate` utility ([#29320](https://github.com/nuxt/nuxt/pull/29320)) for adding virtual files for access inside nitro runtime routes.
Теперь у нас есть новая утилита `addServerTemplate` ([#29320](https://github.com/nuxt/nuxt/pull/29320)) для добавления виртуальных файлов для доступа внутри роутов Nitro в рантайме.

### 🚧 v4 changes
### 🚧 Изменения v4

We've merged some changes which only take effect with `compatibilityVersion: 4`, but which [you can opt-into earlier](/docs/getting-started/upgrade#testing-nuxt-4).
Мы объединили некоторые изменения, которые вступают в силу только с `compatibilityVersion: 4`, но на которые [вы можете согласиться раньше](/docs/getting-started/upgrade#testing-nuxt-4).

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](https://github.com/nuxt/nuxt/pull/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.
1. Ранее, если у вас был компонент типа `~/components/App/Header.vue`, он был бы виден в инструментах разработчика как `<Header>`. Начиная с версии 4, он будет виден как `<AppHeader>`, но это является опцией, чтобы избежать поломки `<KeepAlive>`, который вы могли реализовать. ([#28745](https://github.com/nuxt/nuxt/pull/28745)).
2. Nuxt сканирует метаданные страниц из файлов перед вызовом `pages:extend`. Но это привело к некоторому запутанному поведению, так как страницы, добавленные в этот момент, в конечном итоге не учитывают свои метаданные. Поэтому теперь мы не сканируем метаданные перед вызовом `pages:extend`. Вместо этого у нас есть новый хук `pages:resolved`, который вызывается после `pages:extend`, после того, как все страницы были дополнены своими метаданными. Я бы рекомендовал включить это, установив `experimental.scanPageMeta` на `after-resolve`, так как это решает ряд ошибок.

## 🗺️ Roadmap to v3.15
## 🗺️ Дорожная карта к 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):
Мы не успели к v3.14, но в следующем минорном релизе вы можете ожидать (помимо прочего):

- auto-imported directives from modules ([#29203](https://github.com/nuxt/nuxt/pull/29203))
- 'isolated' page renders ([#29366](https://github.com/nuxt/nuxt/pull/29366))
- delayed hydration ([#26468](https://github.com/nuxt/nuxt/pull/26468))
- автоматически импортированные директивы из модулей ([#29203](https://github.com/nuxt/nuxt/pull/29203))
- 'изолированные' рендеры страниц ([#29366](https://github.com/nuxt/nuxt/pull/29366))
- отложенная гидратация ([#26468](https://github.com/nuxt/nuxt/pull/26468))

## 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.
Это также обновит ваш lockfile и обеспечит получение обновлений от других зависимостей, от которых зависит Nuxt, особенно в экосистеме unjs.

## Full Release Notes
## Полная информация о релизе

::read-more
---
Expand All @@ -78,9 +78,9 @@ icon: i-simple-icons-github
target: _blank
to: https://github.com/nuxt/nuxt/releases/tag/v3.14.0
---
Read the full release notes of Nuxt `v3.14.0`.
Ознакомьтесь с полной информацией о релизе Nuxt `v3.14.0`.
::

A huge thank you to everyone who's been a part of this release. We have exciting things in store with our next releases! ❤️
Огромное спасибо всем, кто принимал участие в этом релизе — вы те, кто делает Nuxt возможным. ❤️

Don't hesitate to let us know if you have any feedback or issues! 🙏
Не стесняйтесь сообщать нам о любых отзывах или проблемах! 🙏

0 comments on commit 546b7f4

Please sign in to comment.