Представляем Astro 4.0! Новые API, более быстрые сборки, обновлённая документация и уникальный инструмент разработки, который по-новому улучшает локальное dev-окружение Astro.
Что такое Astro? Astro — веб-фреймворк для контентных сайтов: блоги, маркетинг, e-commerce. Если нужен быстрый сайт с отличным SEO — Astro для вас.
Основные новинки:
- Astro Dev Toolbar
- Маршрутизация интернационализации (i18n)
- Инкрементальное кэширование контента (экспериментально)
- Новые API View Transitions
- Обновлённое логирование
- Обновлённая документация
Astro 4.0 доступен на npm. Попробуйте на astro.new в браузере или запустите в терминале для нового локального проекта:
# Create a new Astro 4.0 project:npm create astro@latestБольшинство существующих кодовых баз обновятся на Astro 4.0 без проблем. Мы намеренно минимизировали изменения API — большинство изменений в integration API. См. руководство по обновлению с полным разбором каждого изменения.
The Astro Dev Toolbar
Astro 4.0 представляет Dev Toolbar — мощный способ улучшать и настраивать локальный браузерный dev-опыт с Astro. Инспектируйте страницу, находите проблемы доступности и расширяйте toolbar собственными приложениями и сторонними инструментами.
Astro Dev Toolbar появляется в браузере только при разработке и никогда не попадает в production-сборку. Toolbar скрыт внизу страницы, пока не понадобится. Наведите рядом — toolbar появится с несколькими приложениями:
Inspect: подсвечивает интерактивные UI component islands на странице. Приложение использует уникальную island architecture Astro. Подсветка islands помогает понять, какие элементы интерактивны, а какие — лёгкий статический HTML. Можно просмотреть props и открыть компонент в редакторе кода.
Audit: серия тестов на типичные проблемы доступности. Находите изображения без alt или неверные ARIA roles, не покидая браузер.
Sentry: мы сотрудничали с Sentry над первой версией toolbar. Sentry — ведущая платформа мониторинга веб-приложений, и они были рады работать с нами над новым standalone debugging tool для Astro. Возвращайтесь завтра, 6 декабря, за подробностями о партнёрстве и официальном запуске Spotlight.js!
Storyblok: Storyblok — наш Official CMS Partner — выпустил toolbar app в официальной Astro-интеграции. В Astro 4.0 все пользователи Storyblok увидят новое приложение с быстрым доступом к документации, туториалам и ресурсам сообщества Storyblok + Astro. Больше CMS-функций в будущем.
Third-Party Apps: разработчики Astro и авторы интеграций могут использовать новый Dev Toolbar API для встроенных JavaScript-приложений при разработке. Это открывает новый примитив для dev tools:
- показ ошибок тестов и линтинга прямо в браузере;
- открытие dev-окружения в интернет через localtunnel;
- быстрый доступ к внешним инструментам вроде оптимизатора изображений Squoosh;
- внутренние admin-панели команды для автоматизации задач вроде переключения аккаунтов при разработке.
Новые launch week apps для toolbar — в каталоге Astro integrations, создайте своё. В ближайшие месяцы мы продолжим улучшать toolbar. Или отключите в конфиге проекта и выполните astro preferences disable devToolbar --global для глобального отключения на машине.
Internationalization (i18n) Routing
Как фреймворк для контентных сайтов, нас часто спрашивают об интернационализации. i18n для веб-разработчика — дополнительная сложность: маршрутизация, редиректы, переводы, относительные ссылки…
Astro 4.0 представляет i18n-маршрутизацию для глобально доступных сайтов с меньшей сложностью. Автоматическая i18n-маршрутизация и низкоуровневые хелперы для работы с URL.
Встроенная маршрутизация позволяет определить локали в центральной конфигурации:
import { defineConfig } from "astro/config"export default defineConfig({ i18n: { defaultLocale: "en", locales: ["en", "es", "pt-br"] }})Настройте поведение:
- Fallbacks — когда контент недоступен в локали
- Prefixing — добавление имени локали в URL
- Aliasing — для распространённых локалей и языковых кодов
Для 'server' сборок с SSR Astro автоматически определяет предпочитаемый язык пользователя — для адаптации контента, редиректов и кастомной маршрутизации.
i18n-маршрутизация появилась как экспериментальная функция в Astro 3.5. Сегодня она стабильна в Astro 4.0. Читайте руководство по интернационализации Astro.
Incremental Content Caching (Experimental)
Astro 4.0 представляет Incremental Content Caching — экспериментальную функцию для ускорения сборки крупных сайтов.
Кодовая база сайта собирается дольше с ростом. Статические сайты страдают сильнее — одни и те же страницы пересобираются при каждой сборке. В Astro 4.0 мы добавили кэширование, чтобы сократить дублирующую работу в astro build.
На реальной кодовой базе Astro Docs соответствующий шаг astro build сократился с 133.20s до 10.46s — примерно на 92%. Полное время сборки — с 4 мин 58 с до чуть больше 60 с, на 80% быстрее. Похожие результаты в других реальных сценариях.
Инкрементальное кэширование контента интегрируется с Content Collections API. Astro отслеживает изменения в collection через внутренний build manifest и переиспользует неизменённые записи из кэша.
Экспериментальная поддержка появилась в Astro 3.5 как «Content Collections Build Cache». В 4.0 остаётся экспериментальной. Включите experimental.contentCollectionCache для более быстрых сборок.
New View Transition APIs
Astro 3.0 представил View Transitions — API для интерактивного app-like опыта на server-rendered HTML с минимальным client-side JavaScript. С View Transitions в Astro можно:
- Анимировать навигацию между страницами без тяжёлого SPA.
- Сохранять stateful UI между страницами — видеоплееры, карты.
- Морфить общий элемент с одной страницы на другую автоматически.
- Сдвигать и затухать элементы для выразительности.
С момента запуска мы продолжаем улучшать поддержку. Astro 4.0 расширяет View Transitions более настраиваемыми API и новыми сценариями:
- Forms: View Transitions работают со статическими HTML-формами и динамическими клиентскими формами — transition при отправке формы вместо навигации по ссылке.
- Prefetching: prefetch ссылки при hover, tap или появлении на странице. Включение/отключение для отдельной ссылки.
- Route Announcer: встроенная функция для assistive technologies.
- Низкоуровневый JavaScript API
navigate()для ручной навигации. - Полная система lifecycle events для кастомизации загрузки — можно заменить встроенный алгоритм swap своим.
Мы продолжим продвигать View Transitions и их способность давать опыт тяжёлого client-side SPA на server-rendered HTML с небольшим количеством JavaScript. Больше функций впереди!
Огромная благодарность @martrapp за вклад в эти API в Astro 4.0. Читайте обновлённое руководство или новый туториал.
Redesigned logging
Astro CLI получил обновление логирования в релизе 4.0:
- Убрано лишнее логирование: раньше в типичных сценариях было двойное логирование.
- Более компактные ошибки: меньше строк в терминале — меньше прокрутки при ошибках.
- Улучшенные stack traces: по умолчанию без бесполезных Vite runtime internals.
Команды dev и build Astro стали ещё удобнее для чтения и отладки в Astro 4.0.
Redesigned documentation
Starlight — официальный шаблон документации Astro со всеми лучшими практиками за два года работы над docs.astro.build.
Сегодня мы замкнули круг: docs.astro.build теперь на Starlight!
Улучшения нашей документации теперь улучшают Starlight для всех. Благодаря Astro docs в Starlight появились Expressive Code и новый Algolia plugin. Впереди — интерактивное дерево файлов и викторина с выбором ответа.
Благодарим core maintainer @TheOtterlord за значительный вклад в этот апгрейд. Новая документация: docs.astro.build. Кодовая база или Discord — если хотите узнать больше!
Get Started with Astro 4.0
Astro 4.0 доступен на npm. https://astro.new/ — попробуйте в браузере, или в терминале для нового проекта:
# Create a new Astro 4.0 project:npm create astro@latestОбновляетесь на Astro 4.0? См. руководство по обновлению v4.0 с деталями по каждому изменению.
