Команда разработчиков фреймворка Astro, созданного для веб-разработки на JavaScript, выпустила его новую версию под номером 5.2. Релиз включает в себя поддержку Tailwind 4, формата TOML для Markdown, новый способ доступа к конфигурации, улучшенную обработку trailing slash и поддержку внешних редиректов.
Поддержка Tailwind 4
Теперь фреймворк Tailwind CSS v4 предлагает плагин @tailwindcss/vite, который можно напрямую добавить в Astro. Это упрощает интеграцию Tailwind и на данный момент является рекомендуемым способом его использования.
Astro 5.2 добавляет родную поддержку этого плагина: команда astro add tailwind автоматически добавит его в конфигурацию и создаст CSS-файл с импортами Tailwind.
Редиректы для trailing slash
Обсуждение использования слэша в конце URL — давняя тема в веб-разработке. Теперь Astro автоматически выполняет редиректы (перенаправления) в соответствии с параметром trailingSlash в astro.config.mjs.
Теперь неважно, откроет пользователь /about/, /about или даже /about///, — он все равно попадёт на правильную страницу.
Для GET-запросов редирект будет 301 (постоянный). Для всех остальных методов — 308 (постоянный с сохранением метода).
В режиме разработки Astro вместо редиректа покажет страницу ошибки, чтобы помочь обнаружить неправильные ссылки.
Внешние редиректы
Теперь можно задавать редиректы на внешние HTTP/HTTPS-адреса прямо в конфигурации Astro. Как и в случае внутренних редиректов (с Astro 2.9), можно указывать код статуса наряду с новым адресом.
TOML frontmatter в Markdown
В новой версии фреймворка Astro включили поддержку формата сериализации данных TOML в Markdown и MDX, наряду с YAML. Это особенно полезно для переноса контента из других фреймворков, например Hugo.
Настройки не требуются — достаточно использовать +++ для обозначения frontmatter, и Astro автоматически распознает его как TOML.
Модуль astro: config
Astro предлагает несколько способов доступа к конфигурации (import.meta.env, Astro.base и так далее), а это может быть запутанным.
С новым модулем astro: config можно получать ключевые настройки из любого места в проекте с поддержкой типов. Он разделён на два подмодуля:
- /client — доступные на клиенте данные;
- /server — серверные настройки.
Это предотвращает утечки конфиденциальной информации в клиентский код.
Отключение React Streaming
Теперь в @astrojs/react можно отключить React Streaming, если разработчик использует библиотеки, несовместимые с потоковым рендерингом (например, некоторые CSS-in-JS-решения).
Больше интересного про код — в нашем телеграм-канале. Подписывайтесь!