Next.js 15
October 21, 2024Next.js 15 Выпущен: Стабильная Версия для Продакшена
Next.js 15 официально представлен и готов к использованию в продакшене. Этот релиз основан на обновлениях из RC1 и RC2 и фокусируется на стабильности, добавляя при этом несколько захватывающих нововведений. Попробуйте Next.js 15 уже сегодня:
# Используйте новый инструмент автоматического обновления CLI npx @next/codemod@canary upgrade latest # ...или обновитесь вручную npm install next@latest react@rc react-dom@rc
Основные нововведения в Next.js 15:
- @next/codemod CLI: Легко обновляйтесь до последних версий Next.js и React.
- Асинхронные Request API (Breaking Change): Шаг к упрощённой модели рендеринга и кэширования.
- Семантика Кэширования (Breaking Change): Запросы fetch, обработчики маршрутов GET и клиентская навигация больше не кэшируются по умолчанию.
- Поддержка React 19: Совместимость с React 19, экспериментальный React Compiler и улучшения ошибок гидратации.
- Turbopack Dev (Стабильный): Улучшения производительности и стабильности.
- Индикатор Статических Маршрутов: Новый визуальный индикатор показывает статические маршруты во время разработки.
- unstable_after API (Экспериментальный): Выполнение кода после завершения стриминга ответа.
- instrumentation.js API (Стабильный): Новый API для наблюдаемости жизненного цикла сервера.
- Улучшенные Формы (next/form): Расширение HTML-форм с клиентской навигацией.
- Поддержка next.config.ts: Поддержка TypeScript в файлах next.config.ts.
- Улучшения для Самостоятельного Хостинга: Больше контроля над заголовками Cache-Control.
- Безопасность Server Actions: Непредсказуемые конечные точки и удаление неиспользуемых действий.
- Оптимизация Бандлинга Внешних Пакетов (Стабильный): Новые параметры конфигурации для App и Pages Router.
- Поддержка ESLint 9
- Улучшения Производительности Разработки и Сборки
Плавное Обновление с помощью @next/codemod CLI
Мы включили codemod (автоматизированные преобразования кода) в каждый основной релиз Next.js для облегчения обновления. Новый улучшенный CLI позволяет легко обновиться до последних версий:
npx @next/codemod@canary upgrade latest
Асинхронные Request API (Breaking Change)
Чтобы подготовиться к будущим оптимизациям, мы переводим API, зависящие от данных запроса (например, cookies, headers, params, searchParams), в асинхронный режим:
import { cookies } from 'next/headers'; export async function AdminPanel() { const cookieStore = await cookies(); const token = cookieStore.get('token'); // ... }
Это является ломающим изменением. Доступен codemod для автоматизации миграции:
npx @next/codemod@canary next-async-request-api .
Семантика Кэширования (Breaking Change)
Мы изменили поведение кэширования по умолчанию:
- GET Обработчики Маршрутов: Больше не кэшируются по умолчанию в Next.js 15.
- Кэш Клиентского Роутера: Компоненты страниц больше не кэшируются по умолчанию при навигации.
Вы всё ещё можете включить кэширование при необходимости с помощью опций конфигурации.
Поддержка React 19
В Next.js 15 мы добавили поддержку React 19 RC, включая экспериментальный React Compiler и улучшения ошибок гидратации. Для Pages Router сохранена совместимость с React 18, позволяя постепенно обновляться.
Turbopack Dev (Стабильный)
Мы рады сообщить, что next dev --turbo теперь стабилен и готов ускорить ваш процесс разработки. Мы успешно использовали его для разработки vercel.com, nextjs.org и других наших приложений, получив отличные результаты.
Другие Улучшения
- Индикатор Статических Маршрутов: Помогает определить, какие маршруты являются статическими или динамическими во время разработки.
- unstable_after API (Экспериментальный): Позволяет выполнять код после завершения стриминга ответа, не блокируя основной ответ.
- instrumentation.js API (Стабильный): Позволяет отслеживать жизненный цикл сервера для мониторинга производительности и ошибок.
- Компонент <Form>: Расширяет HTML-формы с предзагрузкой, клиентской навигацией и прогрессивным улучшением.
- Поддержка next.config.ts: Предоставляет типизацию и автодополнение для опций конфигурации Next.js.
- Улучшения для Самостоятельного Хостинга: Больше контроля над директивами Cache-Control и улучшения оптимизации изображений без необходимости установки sharp.
- Безопасность Server Actions: Введены безопасные, непредсказуемые идентификаторы действий и удаление неиспользуемых действий для повышения безопасности.
- Оптимизация Бандлинга Внешних Пакетов: Новые опции конфигурации serverExternalPackages и bundlePagesRouterDependencies для App и Pages Router.
- Поддержка ESLint 9: С обратной совместимостью с ESLint 8.
- Улучшения Производительности: Более быстрые сборки, улучшенный Fast Refresh и оптимизированная статическая генерация.
Полные подробности и инструкции по обновлению доступны в официальной документации Next.js 15.
Authors of the original post: Delba de Oliveira, Jimmy Lai, Rich Haines