Контрольный список для продакшена

Перед тем как вывести ваше Next.js приложение в продакшен, следует рассмотреть ряд оптимизаций и паттернов, которые помогут обеспечить наилучший пользовательский опыт, производительность и безопасность.

На этой странице представлены лучшие практики, которые можно использовать в качестве справочника при разработке приложения, перед выводом в продакшен и после развертывания, а также автоматические оптимизации Next.js, о которых следует знать.

Автоматические оптимизации

Эти оптимизации Next.js включены по умолчанию и не требуют дополнительной настройки:

Эти настройки по умолчанию направлены на повышение производительности приложения и уменьшение объема передаваемых данных при каждом сетевом запросе.

Во время разработки

При разработке приложения рекомендуется использовать следующие функции для обеспечения наилучшей производительности и пользовательского опыта:

Маршрутизация и рендеринг

Загрузка данных и кэширование

  • API маршруты (API Routes): Используйте обработчики маршрутов для доступа к бэкенд-ресурсам и предотвращения раскрытия чувствительных данных клиенту.
  • Кэширование данных (Data Caching): Проверьте, кэшируются ли ваши запросы данных, и при необходимости включите кэширование. Убедитесь, что запросы, не использующие getStaticProps, кэшируются там, где это необходимо.
  • Инкрементальная статическая регенерация (Incremental Static Regeneration): Используйте инкрементальную статическую регенерацию для обновления статических страниц после их сборки без необходимости пересобирать весь сайт.
  • Статические изображения (Static Images): Используйте директорию public для автоматического кэширования статических ресурсов приложения, например изображений.

UI и доступность

  • Модуль шрифтов (Font Module): Оптимизируйте шрифты с помощью модуля шрифтов, который автоматически размещает ваши файлы шрифтов вместе с другими статическими ресурсами, удаляет внешние сетевые запросы и уменьшает сдвиг макета (layout shift).
  • Компонент <Image>: Оптимизируйте изображения с помощью компонента Image, который автоматически оптимизирует изображения, предотвращает сдвиг макета и обслуживает их в современных форматах, таких как WebP или AVIF.
  • Компонент <Script>: Оптимизируйте сторонние скрипты с помощью компонента Script, который автоматически откладывает скрипты и предотвращает их блокировку основного потока.
  • ESLint: Используйте встроенный плагин eslint-plugin-jsx-a11y для раннего выявления проблем с доступностью.

Безопасность

Метаданные и SEO

  • Компонент <Head>: Используйте компонент next/head для добавления заголовков страниц, описаний и другого.

Типобезопасность

  • TypeScript и TS плагин: Используйте TypeScript и плагин TypeScript для улучшения типобезопасности и раннего выявления ошибок.

Перед выводом в продакшен

Перед выводом в продакшен можно выполнить next build для локальной сборки приложения и выявления ошибок сборки, а затем запустить next start для измерения производительности приложения в среде, приближенной к продакшену.

Core Web Vitals

  • Lighthouse: Запустите Lighthouse в режиме инкогнито, чтобы лучше понять, как пользователи будут взаимодействовать с вашим сайтом, и выявить области для улучшения. Это симулированный тест, который следует дополнять полевыми данными (например, Core Web Vitals).

Анализ бандлов

Используйте плагин @next/bundle-analyzer для анализа размера ваших JavaScript-бандлов и выявления крупных модулей и зависимостей, которые могут влиять на производительность приложения.

Дополнительно следующие инструменты помогут вам понять влияние добавления новых зависимостей в ваше приложение:

После развертывания

В зависимости от места развертывания вашего приложения у вас могут быть доступны дополнительные инструменты и интеграции для мониторинга и улучшения производительности приложения.

Для развертываний на Vercel рекомендуем следующее:

  • Аналитика: Встроенная панель аналитики для понимания трафика вашего приложения, включая количество уникальных посетителей, просмотры страниц и другое.
  • Speed Insights: Реальные данные о производительности на основе данных посетителей, предлагающие практический взгляд на то, как ваш сайт работает в реальных условиях.
  • Логирование: Логи выполнения и активности для отладки проблем и мониторинга приложения в продакшене. Также см. страницу интеграций для списка сторонних инструментов и сервисов.

Полезно знать:

Для получения всестороннего понимания лучших практик развертывания в продакшене на Vercel, включая детальные стратегии улучшения производительности сайта, обратитесь к чек-листу Vercel для продакшена.

Следование этим рекомендациям поможет вам создать более быстрое, надежное и безопасное приложение для ваших пользователей.