Релиз Nuxt 4.5: переход на Vite 8, Rspack 2 и экспериментальное SSR-стриминг вещание
18 июля 2026 года состоялся выпуск новой версии веб-фреймворка Nuxt — версии 4.5. Разработчик Даниэль Ро (Daniel Roe) назвал это обновление одним из самых крупных за последнее время. Главная цель релиза — обновление сборочного слоя, повышение стабильности и подготовка кодовой базы к будущему переходу на Nuxt 5. Это критически важно, так как жизненный цикл ветки Nuxt 3 завершается 31 июля 2026 года. После этой даты разработчикам будет доступна лишь сервисная ветка поддержки v3, а ключевые архитектурные изменения будут развиваться в рамках четвертого поколения фреймворка.
Nuxt — это open-source веб-фреймворк на базе Vue.js, предоставляющий архитектуру для серверного рендеринга (SSR), генерации статических сайтов (SSG) и автоматического импорта компонентов. Версия 4.5 существенно повышает производительность и удобство разработки (DX), интегрируя новые версии инструментов сборки и экспериментальный режим рендеринга.
Обновление сборочного слоя: Vite 8 и Rspack 2
Ключевым изменением стал переход на Vite 8 — инструмент сборки, известный быстрым холодным стартом и мгновенным обновлением модулей на лету (HMR). Под капотом Vite 8 используются механизмы компилятора Rolldown на Rust, который со временем заменит Rollup и esbuild, обеспечивая высокую скорость сборки.
В официальном руководстве по миграции Vite советует авторам сложных проектов действовать поэтапно: сначала перейти на плагин rolldown-vite в рамках Vite 7, чтобы локализовать и устранить проблемы совместимости, специфичные для компилятора Rolldown, и только после этого обновляться до Vite 8.
Альтернативный сборщик Rspack 2 — высокопроизводительный Rust-эквивалент Webpack — теперь полностью переписан на базе @rsbuild/core. Сервер разработки Rspack работает в режиме промежуточного ПО (middleware), заменяя webpack-dev-middleware. Для корректной генерации идентификаторов стилей при SSR и строгого разрешения путей по спецификации ESM разработчики внедрили специализированный загрузчик Vue-компонентов под Rspack.
Для активации Rspack в качестве сборщика в файле конфигурации nuxt.config.ts используется параметр:
export default defineNuxtConfig({
builder: 'rspack'
})
Экспериментальный SSR Streaming: мгновенный TTFB
Одной из главных функций в Nuxt 4.5 стал экспериментальный потоковый рендеринг (SSR streaming). По умолчанию классический SSR работает буферизованно: сервер генерирует HTML-страницу целиком в оперативной памяти и только потом отправляет ее клиенту. Это приводит к задержке отправки первого байта (TTFB), особенно на страницах с медленными запросами к API.
Режим ssrStreaming меняет процесс: сервер моментально отправляет клиенту HTML-каркас (shell), включающий секцию <head>, стили, ссылки на предзагрузку ресурсов (preload) и скрипты. Затем, по мере готовности данных, сервер постепенно передает тело документа (<body>), используя Vue-функцию renderToWebStream. Это позволяет браузеру начать парсинг документа и загрузку стилей до того, как страница отрендерится полностью.
Включить новый режим можно в файле конфигурации приложения:
export default defineNuxtConfig({
experimental: {
ssrStreaming: true
}
})
Технические ограничения потокового рендеринга:
- Фиксация заголовков: Как только сервер отправляет первый байт, HTTP-статус и заголовки ответа фиксируются. Любые вызовы
setResponseStatus()внутри страниц или запись cookies в middleware во время рендеринга будут проигнорированы, а в консоли появятся предупреждения. - Резервное копирование (fallbacks): Потоковый рендеринг автоматически отключается для маршрутов с редиректами, кэшированием (ISR/SWR), отключенными скриптами (
noScripts) или приssr: false. - Поисковые роботы: Стриминг отключается для поисковых ботов. Логику определения ботов можно настроить с помощью регулярного выражения:
export default defineNuxtConfig({
experimental: {
ssrStreaming: {
botRegex: /googlebot|bingbot/i
}
},
routeRules: {
'/no-stream/**': { streaming: false }
}
})
Улучшение DX: диагностические коды и новые API
В фреймворке дебютировала стабильная система кодов ошибок на базе библиотеки nostics. Вместо текстовых сообщений разработчики будут видеть структурированные коды, такие как NUXT_E1001 (вызов composables вне контекста Vue) или NUXT_B5001. Каждое сообщение содержит краткое описание проблемы, рекомендации по исправлению и ссылку на документацию. В целях оптимизации все подробные текстовые пояснения автоматически вырезаются из продакшен-сборки.
Среди новых API:
- Функция
useLayout: возвращает реактивный computed-объект с информацией о текущем шаблоне. Значение автоматически синхронизируется при смене маршрута. - Именованные представления (Named Views): поддерживаются на уровне файловой структуры. Создание файла
[email protected]монтирует его в именованный компонент<NuxtPage name="sidebar" />. - Параметр
enabledвuseFetchиuseAsyncData: позволяет управлять выполнением запросов. Пока флаг равенfalse, автозапуск запросов и наблюдатели блокируются.
const { data } = await useFetch('/api/user', {
enabled: computed(() => isLoggedIn.value)
})
Пошаговое руководство по обновлению проекта
Ниже приведено руководство по обновлению и настройке Nuxt 4.5. Все операции выполняются в терминале вашей рабочей станции или на сервере непрерывной интеграции (CI).
Шаг 1: Обновление зависимостей фреймворка
Запустите команду обновления в корневом каталоге проекта. Она загрузит последнюю версию пакетов и автоматически очистит дубликаты:
npx nuxt upgrade --dedupe
Примечание: Если проекту необходимо оставаться на ветке Nuxt 3, используйте команду перехода на выделенный канал поддержки:
npx nuxt@latest upgrade --dedupe --channel=v3
Шаг 2: Включение экспериментальных функций в nuxt.config.ts
Откройте конфигурационный файл проекта и добавьте новые параметры для активации потокового рендеринга и оптимизации загрузки тегов предзагрузки:
export default defineNuxtConfig({
experimental: {
ssrStreaming: true,
prefetchPreloadTags: true
}
})
Параметр prefetchPreloadTags предписывает Nuxt транслировать теги предзагрузки ресурсов целевой страницы в формате <link rel="prefetch"> на текущей странице, ускоряя переходы.
Шаг 3: Проверка типов с помощью Golar
Для выполнения статической проверки типов вы можете использовать новый быстрый type-checker golar вместо стандартного vue-tsc:
npx nuxt typecheck --checker=golar
Шаг 4: Валидация и тестирование
- Проверка конфигурации Vite: Сверьте ваши кастомные плагины с Vite Migration Guide для исключения несовместимости API.
- Тестирование сессий: Протестируйте сценарии авторизации и установки кук. Убедитесь, что все вызовы, влияющие на заголовки ответов, происходят до отправки первого чанка данных в режиме стриминга.
- Мониторинг логов: После развертывания проверьте логи консоли на предмет предупреждений с кодами семейства
NUXT_E*илиNUXT_B*.
Стабильность и потенциальные риски
Несмотря на стабильный статус релиза, некоторые функции остаются в экспериментальном статусе (ssrStreaming и prefetchPreloadTags). Разработчики предупреждают, что их поведение может корректироваться в патчах.
Обновление Unhead до версии v3 накладывает требования к типизации мета-тегов в useHead. Передача объектов Promise больше не поддерживается, что может потребовать рефакторинга. Перед обновлением рекомендуется ознакомиться с полной версией Nuxt Changelog и анонсом на странице Nuxt Blog.

