NuxtЩо нового в Nuxt 4.6
Реліз приніс новий інтерфейс імпорту nuxt/server, оновлений @nuxt/cli v4, системний appSecret та перебудовану типізацію $fetch.
Реліз від 5 жовтня 2026 · оновлено 8 листопада 2026
Головне
- Новий шар імпорту nuxt/server для серверного коду на базі портативного RequestEvent
- Реліз @nuxt/cli v4 з інтерактивним термінальним UI та прискореним запуском nuxt dev
- Кореневий секрет runtimeConfig.appSecret та вбудовані session helpers без серверного сховища
- Перебудована типізація $fetch на базі бібліотеки fetchdts для масштабних наборів маршрутів
- Експериментальна підтримка збірки сервера через @nuxt/vite-server на базі Vite Environment API
Коротко
Nuxt 4.6 фокусується на переході до server-agnostic архітектури завдяки виокремленню незалежного шару nuxt/server та власних типів сервера. Оновлення постачається разом із новою мажорною версією @nuxt/cli v4 з інтерактивним термінальним інтерфейсом і прискореним стартом розробки. Крім того, додано механізм appSecret із вбудованими утилітами для роботи з сесіями та повністю переписано генерацію типів для $fetch.
Нові можливості
Серверний шар nuxt/server
- Власний простір імен для серверного коду: Додано джерело імпорту
nuxt/server, призначене для хендлерів, middleware та серверних утиліт, на противагу клієнтськомуnuxt/app. Воно не прив'язує код застосунку до прямих імпортів ізh3чиnitropack. - Портативний
RequestEvent: Утиліти побудовані на вебстандартах. Об'єктeventнадає поляevent.req(Request),event.url(URL),event.res({ status, statusText, headers }),event.res.headers(Headers) таevent.context. - Набір серверних утиліт: До складу
nuxt/serverвходятьdefineEventHandler,createError/isNuxtError, методи читання URL, заголовків, query, cookies, редиректів, статусів відповідей,getRouterParam(s),getRequestIP,handleCors,getRouteRules,useRuntimeConfig,useAppConfig, читання тіла запиту (включно з валідацією через бібліотеки на базі Standard Schema або функції), а також хелпери сесій. - Експериментальний
@nuxt/vite-server: Окрім стандартного Nitro, представлено альтернативну реалізацію@nuxt/vite-server, яка забезпечує чисті збірки сервера за допомогою Vite Environment API. - Відмінності в поведінці API: У
nuxt/serverхелперsendRedirectповертає відповідь, а не відправляє її напряму,createErrorприймає параметриstatusтаstatusText, а заголовки відповіді встановлюються черезevent.res.headers.
@nuxt/cli v4
- Інтерактивний UI в
nuxt dev: Термінал відображає адреси URL, прогрес запуску, гарячі клавіші, а також панелі для перегляду логів помилок, маршрутів і мережевих запитів. - Деталізація стану сервера: Сервер розробки повідомляє причини перезавантаження чи перезапуску, змінені ключі в
nuxt.config, витрати часу під час старту та тривалість ініціалізації кожного модуля. - Канал помилок на рівні CLI: Реалізовано канал помилок на базі
my-bad, що автоматично перезавантажує процес після виправлення синтаксичних помилок уnuxt.config.ts. - Блокування через lock-файл: У каталозі
.nuxt/створюється lock-файл, що запобігає конфліктам між процесамиnuxt dev, а також забезпечує роботу нових командnuxt curlтаnuxt taskдля взаємодії з активним сервером. - Нові команди: Додано
nuxt docs "<query>"для пошуку за документацією, а прапорецьnuxt preview --takeoverдозволяє замінити запущений сервер попереднього перегляду. - Вимоги середовища: Для CLI потрібні версії Node.js v22.21+, v24.11+ або v26+. Команду
nuxt initвилучено на користьnpm create nuxt@latest, а підтримку Nuxt 2 та@nuxt/bridgeповністю припинено.
Системний appSecret і сесії
- Єдиний корінь секретів: Додано
runtimeConfig.appSecret, значення якого встановлюється через змінну оточенняNUXT_APP_SECRET. Специфічні секрети генеруються функцієюderiveSecret(purpose). - Поведінка в dev-режимі: Якщо значення не задано в розробці, Nuxt автоматично генерує та зберігає секрет; під час production-збірок секрет автоматично не створюється.
- Сесії без бази даних: У
nuxt/serverдодано хелперuseSession, який запечатує сесії в cookies за допомогою бібліотекиiron, не потребуючи окремого серверного сховища.
Перебудований typed $fetch
- Інтеграція з
fetchdts: Механізм типізації$fetchіuseFetchпереписано на базі бібліотекиfetchdts, замінивши інтерфейсInternalApiз Nitro. - Таблиця статичних маршрутів: Nuxt компілює серверні маршрути в дерево з таблицею точних збігів для статичних шляхів, що усуває помилку
TS2589на проєктах із сотнями маршрутів і зменшує кількість інстанціювань типів.
Виправлення та покращення
- Безпека: Заборонено доступ dev-сервера до вихідних файлів збірки Nitro dev та згенерованого dev-секрету. Закрито витік файлів через клієнтські звіти про помилки у Vite. У схемі налаштовано ігнорування директорії
.wrangler. - Обробка помилок у продакшені: У production-режимі сторінка помилки та payload передають повідомлення і дані виключно для помилок, створених через
createError; інші деталі вирізаються. - Захист dev-серверів: Сервери розробки Webpack та Rspack відхиляють несанкціоновані заголовки
Host; додано конфігураціюdevServer.allowedHosts. - Правила маршрутизації (Route Rules): Правила
cache,swrтаisrтепер кешують лише запитиGETіHEADта ігнорують відповіді, що встановлюють cookies або мають заголовкиCache-Control: privateчиno-store. Додано підтримку шляхів із закодованими слешами. - Визначення робочого простору: За відсутності налаштування
workspaceDirNuxt розширює контекст даліrootDirтільки за наявності явного кореня workspace або найближчого git-репозиторію. - Продуктивність збірки: Пропускається компіляція звичайних блоків стилів під час серверної збірки Vite, оптимізовано перевірки вкладених директорій у
fs.allow, а виклик$fetchглобально типізовано черезTypedFetch.
Огляд підготовлено автоматично за офіційними release notes за допомогою ШІ та перевірено на відповідність джерелу. Точні формулювання дивіться в оригіналі. Як ми працюємо