diff --git a/content/7.blog/25.v3-12.md b/content/7.blog/25.v3-12.md index cb1331dd6..d9a2b58a0 100644 --- a/content/7.blog/25.v3-12.md +++ b/content/7.blog/25.v3-12.md @@ -1,22 +1,22 @@ --- title: Nuxt 3.12 -description: Nuxt 3.12 is out - full of improvements and preparing the way for Nuxt 4! +description: Вышел Nuxt 3.12 - полный улучшений и готовящий почву для Nuxt 4! navigation: false image: /assets/blog/v3.12.png authors: - - name: Daniel Roe + - name: Дэниел Ро avatarUrl: https://github.com/danielroe.png link: https://twitter.com/danielcroe twitter: danielcroe date: 2024-06-10T10:00:00.000Z -category: Release +category: Релиз --- -We're on the road to the release of Nuxt 4, but we've not held back in Nuxt v3.12. +Мы движемся к релизу Nuxt 4, но при этом мы не задерживаем прогресс и в Nuxt v3.12. -## 🚀 Testing Nuxt 4 changes +## 🚀 Тестирование изменений Nuxt 4 -Nuxt 4 is on the horizon, and it's now possible to test out the behaviour changes that will be coming in the next major release ([#26925](https://github.com/nuxt/nuxt/pull/26925)) by setting an option in your `nuxt.config` file: +Nuxt 4 уже на горизонте, и теперь можно протестировать изменения в поведении, которые появятся в следующем крупном релизе ([#26925](https://github.com/nuxt/nuxt/pull/26925)), установив опцию в вашем файле `nuxt.config`: ```ts export default defineNuxtConfig({ @@ -26,99 +26,99 @@ export default defineNuxtConfig({ }) ``` -As we've been merging PRs for Nuxt 4, we've been enabling them behind this flag. As much as possible we're aiming for backwards compatibility - our test matrix is running the same fixtures in both v3 and v4 compatibility mode. +По мере того как мы объединяли PR для Nuxt 4, мы включали их под этим флагом. Мы стремимся к обратной совместимости насколько это возможно - наша тестовая матрица запускает одни и те же фиксы в режиме совместимости как с v3, так и с v4. -There is a lot to say here, with 10+ different PRs and behaviour changes documented and testable, but for full details, including migration steps, see [the v4 upgrade documentation](/docs/getting-started/upgrade#testing-nuxt-4). +Здесь можно многое рассказать, поскольку 10+ различных PR и изменений поведения задокументированы и тестируются, но для получения полной информации, включая шаги по переходу, смотрите [документацию по обновлению на v4](/docs/getting-started/upgrade#testing-nuxt-4). -We'd be very grateful for early testing of what's coming in Nuxt 4! 🙏 +Мы будем очень благодарны за раннее тестирование того, что появится в Nuxt 4! 🙏 -## 📜 Nuxt Scripts auto-install +## 📜 Автоматическая установка Nuxt Scripts -We've been gradually working to release [Nuxt Scripts](https://scripts.nuxt.com/). It's currently in public preview, but we're near a public release, so we've added some stubs for composables that (when used) will prompt installing the `@nuxt/scripts` module. +Мы постепенно работаем над релизом [Nuxt Scripts](https://scripts.nuxt.com/). В настоящее время он находится в стадии публичного предварительного просмотра, но мы уже близки к публичному релизу, поэтому мы добавили несколько заглушек для композаблов, которые (при использовании) будут предлагать установить модуль `@nuxt/scripts`. -👉 Watch out for the launch - and an article explaining more! +👉 Следите за запуском - и за статьей, в которой будет рассказано больше! -## 🌈 Layer auto-registration and bugfixes +## 🌈 Авто-регистрация слоев и исправление ошибок -Just like `~/modules`, any layers within your project in the `~/layers` directory will now be automatically registered as layers in your project ([#27221](https://github.com/nuxt/nuxt/pull/27221)). +Как и в случае с `~/modules`, любые слои в вашем проекте в директории `~/layers` теперь будут автоматически регистрироваться как слои в вашем проекте ([#27221](https://github.com/nuxt/nuxt/pull/27221)). -We also now correctly load layer dependencies, which should resolve a range of issues with monorepos and git installations ([#27338](https://github.com/nuxt/nuxt/pull/27338)). +Мы также теперь корректно загружаем зависимости слоев, что должно решить ряд проблем с монорепозиториями и установками git ([#27338](https://github.com/nuxt/nuxt/pull/27338)). -## 🌐 Built-in accessibility improvements +## 🌐 Встроенные улучшения доступности -We now have a built-in [``](/docs/api/components/nuxt-route-announcer) component and corresponding [`useRouteAnnouncer`](/docs/api/composables/use-route-announcer) composable, which will be added by default to new Nuxt templates going forward. +Теперь у нас есть встроенный компонент [``](/docs/api/components/nuxt-route-announcer) и соответствующий композабл [`useRouteAnnouncer`](/docs/api/composables/use-route-announcer), которые будут добавляться по умолчанию в новые шаблоны Nuxt в дальнейшем. -For full details, see [the original PR (#25741)](https://github.com/nuxt/nuxt/pull/25741) and [documentation](/docs/api/components/nuxt-route-announcer). +Для получения подробной информации смотрите [оригинальный PR (#25741)](https://github.com/nuxt/nuxt/pull/25741) и [документацию](/docs/api/components/nuxt-route-announcer). -We're continuing to work on `nuxt/a11y` - expect to hear more on that in future! +Мы продолжаем работать над `nuxt/a11y` - ожидайте новых новостей об этом в будущем! -## 🔥 Performance improvements +## 🔥 Улучшения производительности -We've landed some performance improvements as well, many of which are behind the `compatibilityVersion: 4` flag, such as a move away from deeply reactive asyncData payloads. +Мы также улучшили производительность, часть улучшений скрываются за флагом `compatibilityVersion: 4`, например, отказ от глубоко реактивных полезных нагрузок asyncData. -Significant improvements include deduplicating modules ([#27475](https://github.com/nuxt/nuxt/pull/27475)) - which will apply mostly to layer users who specify modules in their layers. In one project, we saw 30s+ improvement in starting Nuxt. +К значительным улучшениям относится дедупликация модулей ([#27475](https://github.com/nuxt/nuxt/pull/27475)) - это касается в основном пользователей слоев, которые указывают модули в своих слоях. В одном проекте мы увидели улучшение на 30 с лишним секунд при запуске Nuxt. -We've also improved Vite dev server start up time by excluding common ESM dependencies from pre-bundling, and would suggest module authors consider doing the same ([#27372](https://github.com/nuxt/nuxt/pull/27372)). +Мы также улучшили время запуска dev-сервера Vite, исключив общие зависимости ESM из предварительного бандлинга, и советуем авторам модулей сделать то же самое ([#27372](https://github.com/nuxt/nuxt/pull/27372)). -We improved chunk determinism, so sequential builds should be less likely to have _completely_ different chunk hashes ([#27258](https://github.com/nuxt/nuxt/pull/27258)). +Мы улучшили детерминизм чанков, так что последовательные сборки должны быть менее склонны иметь _полностью_ разные хэши чанков ([#27258](https://github.com/nuxt/nuxt/pull/27258)). -And we tree shake more client-only composables from your server builds ([#27044](https://github.com/nuxt/nuxt/pull/27044)), and have reduced the size of server component payloads ([#26863](https://github.com/nuxt/nuxt/pull/26863)). +Кроме того, в серверных билдах мы использовали tree-shake для client-only композаблов ([#27044](https://github.com/nuxt/nuxt/pull/27044)) и уменьшили размер полезной нагрузки серверных компонентов ([#26863](https://github.com/nuxt/nuxt/pull/26863)). -## 👨‍👩‍👧‍👦 Multi-app support +## 👨‍👩‍👧‍👦 Поддержка нескольких приложений -We've landed a couple of changes that take us toward a place of supporting multi-app natively in Nuxt, including a `multiApp` experimental flag ([#27291](https://github.com/nuxt/nuxt/pull/27291)) and the ability to have multiple Nuxt app instances running in parallel at runtime ([#27068](https://github.com/nuxt/nuxt/pull/27068)). +Мы внесли несколько изменений, которые приближают нас к поддержке нескольких приложений в Nuxt, включая экспериментальный флаг `multiApp` ([#27291](https://github.com/nuxt/nuxt/pull/27291)) и возможность параллельного запуска нескольких экземпляров приложений Nuxt во время выполнения ([#27068](https://github.com/nuxt/nuxt/pull/27068)). -While it's not yet ready, please do follow along on [the tracker issue](https://github.com/nuxt/nuxt/issues/21635), and feel free to pitch in if this is interesting to you. +Хотя это еще не готово, пожалуйста, следите за развитием событий на [трекере проблем](https://github.com/nuxt/nuxt/issues/21635), и не стесняйтесь вносить свой вклад, если это вам интересно. -## ⛑️ DX wins +## ⛑️ DX побеждает -We now serialise more things in your dev server logs, including VNodes ([#27309](https://github.com/nuxt/nuxt/pull/27309)) and [URLs](https://github.com/nuxt/nuxt/commit/a549b46e9). We also addressed a bug that could lead to a frozen dev server. +Теперь в журналах dev-сервера сериализуется больше информации, включая VNodes ([#27309](https://github.com/nuxt/nuxt/pull/27309)) и [URLs](https://github.com/nuxt/nuxt/commit/a549b46e9). Мы также исправили ошибку, которая могла привести к замораживанию dev-сервера. -When accessing private runtime config in the browser, we now let you know with a more informative error message ([#26441](https://github.com/nuxt/nuxt/pull/26441)). +При доступе к приватному runtime-конфигу в браузере мы теперь сообщаем вам об этом более информативным сообщением об ошибке ([#26441](https://github.com/nuxt/nuxt/pull/26441)). -## 🪨 Stabilising features +## 🪨 Стабилизирующие улучшения -We've removed some experimental options that have been stabilised and which we feel no longer need to be configurable: +Мы удалили некоторые стабилизированные экспериментальные опции, которые, по нашему мнению, больше не нуждаются в настройке: -- `experimental.treeshakeClientOnly` (enabled by default since v3.0.0) -- `experimental.configSchema` (enabled by default since v3.3.0) -- `experimental.polyfillVueUseHead` (disabled since v3.4.0) - implementable in user-land with [plugin](https://github.com/nuxt/nuxt/blob/f209158352b09d1986aa320e29ff36353b91c358/packages/nuxt/src/head/runtime/plugins/vueuse-head-polyfill.ts#L10-L11) -- `experimental.respectNoSSRHeader` (disabled since v3.4.0) - implementable in user-land with [server middleware](https://github.com/nuxt/nuxt/blob/c660b39447f0d5b8790c0826092638d321cd6821/packages/nuxt/src/core/runtime/nitro/no-ssr.ts#L8-L9) +- `experimental.treeshakeClientOnly` (включена по умолчанию с v3.0.0) +- `experimental.configSchema` (включена по умолчанию с v3.3.0) +- `experimental.polyfillVueUseHead` (отключен с v3.4.0) - реализуется на клиентской части с помощью [plugin](https://github.com/nuxt/nuxt/blob/f209158352b09d1986aa320e29ff36353b91c358/packages/nuxt/src/head/runtime/plugins/vueuse-head-polyfill.ts#L10-L11) +- `experimental.respectNoSSRHeader` (отключен с версии 3.4.0) - реализуется на клиентской части с помощью [server middleware](https://github.com/nuxt/nuxt/blob/c660b39447f0d5b8790c0826092638d321cd6821/packages/nuxt/src/core/runtime/nitro/no-ssr.ts#L8-L9) -We've also enabled `scanPageMeta` by default ([#27134](https://github.com/nuxt/nuxt/pull/27134)). This pulls out any page metadata in your `definePageMeta` macro, and makes it available to modules (like `@nuxtjs/i18n`) so they can augment it. +Мы также включили `scanPageMeta` по умолчанию ([#27134](https://github.com/nuxt/nuxt/pull/27134)). Это извлекает любые метаданные страницы из вашего макроса `definePageMeta` и делает их доступными для модулей (например, `@nuxtjs/i18n`), чтобы они могли их дополнить. -This unlocks much better module/typed routing integration, but has a potential performance cost - so please file an issue if you experience any problems. +Это открывает гораздо лучшую интеграцию модулей и типизированной маршрутизации, но потенциально требует затрат на производительность, поэтому, если у вас возникнут какие-либо проблемы, пожалуйста, напишите об этом. -## 💪 Type improvements +## 💪 Улучшения типизации -We now have support for typed `#fallback` slots in server components ([#27097](https://github.com/nuxt/nuxt/pull/27097)). +Теперь у нас есть поддержка типизированных слотов `#fallback` в серверных компонентах ([#27097](https://github.com/nuxt/nuxt/pull/27097)). -We've also improved some defaults in your generated `tsconfig.json`, including setting `module: 'preserve'` if you have a locally installed TypeScript v5.4 version ([see docs](https://www.typescriptlang.org/tsconfig/#preserve)) - see [#26667](https://github.com/nuxt/nuxt/26667), [#27485](https://github.com/nuxt/nuxt/27485). +Мы также улучшили некоторые параметры по умолчанию в генерируемом вами файле `tsconfig.json`, включая установку `module: 'preserve'`, если у вас локально установлена версия TypeScript v5.4 ([см. документацию](https://www.typescriptlang.org/tsconfig/#preserve)) - см. [#26667](https://github.com/nuxt/nuxt/26667), [#27485](https://github.com/nuxt/nuxt/27485). -## 📦 Module author/power user improvements +## 📦 Улучшения для авторов модулей/опытных пользователей -We have shipped a range of type improvements for module authors, including: +Мы добавили ряд улучшений типов для авторов модулей, включая: -- support for typed module options in `installModule` ([#26744](https://github.com/nuxt/nuxt/pull/26744)) -- the option to specify compatibility with certain builders (vite/webpack) in module options ([#27022](https://github.com/nuxt/nuxt/pull/27022)) -- a new `onPrehydrate` hook for hooking into the browser hydration cycle ([#27037](https://github.com/nuxt/nuxt/pull/27037)) -- the ability to access and update _resolved_ runtime configuration within modules, with new build-time `useRuntimeConfig` and `updateRuntimeConfig` utils ([#27117](https://github.com/nuxt/nuxt/pull/27117)) +- поддержка типизированных опций модуля в `installModule` ([#26744](https://github.com/nuxt/nuxt/pull/26744)) +- возможность указать совместимость с некоторыми сборщиками (vite/webpack) в опциях модуля ([#27022](https://github.com/nuxt/nuxt/pull/27022)) +- новый хук `onPrehydrate` для подключения к циклу гидратации браузера ([#27037](https://github.com/nuxt/nuxt/pull/27037)) +- возможность доступа и обновления _разрешенной_ runtime-конфигурации внутри модулей с новыми утилитами `useRuntimeConfig` и `updateRuntimeConfig` ([#27117](https://github.com/nuxt/nuxt/pull/27117)) -## 🎨 Inlined UI templates +## 🎨 Инлайн UI шаблоны -If you previously used `@nuxt/ui-templates` then it may be worth knowing that we have moved them from [a separate repository](https://github.com/nuxt/ui-templates) into the [nuxt/nuxt](https://github.com/nuxt/nuxt) monorepo. (This is purely a refactor rather than a change, although you can expect some new designs for Nuxt v4.) +Если вы раньше использовали `@nuxt/ui-templates`, то вам стоит знать, что мы перенесли их из [отдельного репозитория](https://github.com/nuxt/ui-templates) в монорепозиторий [nuxt/nuxt](https://github.com/nuxt/nuxt). (Это чисто рефактор, а не изменение, хотя вы можете ожидать некоторые новые дизайны для Nuxt v4). -## ✅ 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 --- @@ -127,11 +127,11 @@ icon: i-simple-icons-github target: _blank to: https://github.com/nuxt/nuxt/releases/tag/v3.12.0 --- -Read the full release notes of Nuxt `v3.12.0`. +Ознакомьтесь с полной информацией о релизе Nuxt `v3.12.0`. :: -A huge thank you to the 75+ Nuxt contributors and community members who have been part of this release. ❤️ +Огромное спасибо 75+ контрибьюторам и членам сообщества Nuxt, которые приняли участие в создании этого релиза. ❤️ -Finally, thank you for reading this far! We hope you enjoy v3.12, and please do let us know if you have any feedback or issues. 🙏 +Наконец, спасибо, что дочитали до этого момента! Мы надеемся, что вам понравится v3.12, и, пожалуйста, дайте нам знать, если у вас есть какие-либо отзывы или проблемы. 🙏 -**Happy Nuxting ✨** +**Счастливого Nuxting'а ✨**