AstroЩо нового в Astro 7.4
В Astro 7.4 з'явилися прапорець --timings для аналізу збірки, експериментальний паралельний пререндеринг та гнучкі сервіси для зображень.
Реліз від 15 жовтня 2026 · оновлено 9 листопада 2026
Головне
- Прапорець --timings для пошуку повільних етапів збірки в astro build
- Експериментальний паралельний пререндеринг на кількох ядрах процесора
- Підтримка роздільних сервісів build та runtime для оптимізації зображень
- Експериментальна сторінка редиректів src/pages/3xx.astro для статичних збірок
- Підвищення мінімальної версії Node.js до 22.23.4 (з підтримкою 22.22.0 у WebContainers)
Коротко
Реліз Astro 7.4 зосереджений на продуктивності збірок та гнучкості конфігурації. До команди astro build додано інструменти діагностики часу виконання, а також представлено експериментальну генерацію статичних сторінок паралельно на кількох ядрах процесора. Крім того, оновлення принесло роздільні сервіси обробки зображень для збірки та рантайму, покращення для провайдерів шрифтів і свіжі виправлення стабільності.
Нові можливості
Продуктивність та оптимізація збірки
- Прапорець
--timingsдля командиastro build: дозволяє виявити причини тривалої збірки (інтеграції, плагіни Markdown, генерація зображень або підсвічування синтаксису). Після завершення процесу виводиться підсумковий звіт із часом кожного етапу:astro build --timings - Експериментальний паралельний пререндеринг (
experimental.parallelPrerender): дає змогу рендерити статичні сторінки за допомогою кількох ядер процесора одночасно. За замовчуванням задіюються всі ядра CPU, крім одного. Кількість потоків можна налаштувати параметромworkers:
Кожен воркер обробляє кількість сторінок відповідно до// astro.config.mjs import { defineConfig } from 'astro/config'; export default defineConfig({ experimental: { parallelPrerender: { workers: 4, }, }, });build.concurrency. Прапорець ігнорується, якщо адаптер використовує власний підхід до пререндерингу (наприклад,@astrojs/cloudflare).
Зображення та інтеграції
- Роздільні сервіси
buildтаruntimeдля зображень: властивістьimage.serviceтепер підтримує розділення. Сервісbuildобробляє зображення на етапі пререндерингу та в режимі розробки, аruntime— для динамічних сторінок і кінцевої точки зображень:// astro.config.mjs import { defineConfig } from 'astro/config'; export default defineConfig({ image: { service: { build: { entrypoint: 'astro/assets/services/sharp' }, runtime: { entrypoint: 'my-image-cdn-service' }, }, }, }); - Керування каталогами виводу та звітність про зображення для пререндерерів: інтеграції можуть контролювати розміщення результатів збірки клієнта, сервера й пререндерингу через новий контекст
outputDirectoriesуsetPrerenderer. Також користувацькі пререндерери тепер можуть повертати дані про зображення уgetStaticPaths()таrender(). - Покращення провайдерів шрифтів:
- Додано необов'язковий колбек
getFontProperties(), що описує доступні насиченості (weights), стилі (styles), підмножини (subsets) і формати (formats) шрифту. В Astro 8 цей метод стане обов'язковим. - У контекст
init()додано функціюfetch(), яка підтримує повторні спроби запитів у разі тимчасових збоїв під час взаємодії з API провайдерів.
- Додано необов'язковий колбек
Маршрутизація та обробка помилок
- Кастомні сторінки редиректів (
experimental.redirectPage): прапорець дозволяє замінити автоматично згенеровані HTML-файли редиректів власним шаблономsrc/pages/3xx.astro. Сторінка отримує властивостіfrom,to,status,delayі обов'язково повинна містити тег<meta http-equiv="refresh">:--- // src/pages/3xx.astro import type { RedirectPageProps as Props } from 'astro'; const { from, to, status, delay } = Astro.props; --- <html lang="en"> <head> <meta http-equiv="refresh" content={`${delay};url=${to}`} /> <meta name="robots" content="noindex" /> <title>Redirecting…</title> </head> <body> <p>This page has moved. <a href={to}>Continue to {to}</a>.</p> </body> </html> - Обробник
notFound()дляastro/fetchтаastro/hono: рендерить власну сторінку 404 (включно з пререндереною404.astro) у точках входу нестандартних серверів чи воркерів (наприклад, у застосунках Hono на Cloudflare Workers безApp.render).
Виправлення та покращення
- Системні вимоги: мінімальну підтримувану версію Node.js підвищено до 22.23.4 (для виправлення вразливостей платформи), водночас робота CLI дозволена на Node.js
>=22.22.0всередині WebContainers (StackBlitz). - Збірка та оптимізація:
- Збереження дат останньої модифікації кешованих оптимізованих зображень, шрифтів та публічних файлів при копіюванні у фінальний білд.
- Прискорено синхронізацію контенту з опцією
experimental.collectionStorage: "chunked"завдяки розрахунку ширини символів UTF-8 безпосередньо за кодовими точками. - Виправлено витік пам'яті під час редагування конфігурації Astro при запущеному сервері розробки.
- Усунено помилку
DataCloneErrorпід час роботиexperimental.parallelPrerenderз імпортованими SVG через<Image />абоgetImage(). - Запобігання потраплянню невикористаних стилів у збірку, якщо компоненти повторно експортувалися через barrel-файли.
- Маршрутизація та навігація:
- Виправлено обробку i18n fallback для сторінок на вимогу (SSR), які раніше могли повертати статус
302без заголовкаLocation. - У компоненті
<ClientRouter />відновлення позиції прокручування під час переходів вперед/назад тепер відбувається миттєво, навіть якщо заданоscroll-behavior: smooth. - Запити зі спотвореним percent-encoding (як-от
/%C0%AFабо незакритий%) тепер коректно повертають статус400.
- Виправлено обробку i18n fallback для сторінок на вимогу (SSR), які раніше могли повертати статус
- Безпека та CSP: директиви CSP більше не створюють хеші порожніх рядків для зовнішніх стилів і скриптів, а також коректно враховують хеші з
Astro.cspдля компонентів усередині<body>у статичних збірках. - CLI та середовище:
astro checkтепер повертає код завершення1, якщо@astrojs/checkабоtypescriptвідсутні в системі, або коли конвеєр виводу закрито передчасно.astro addотримав підтримку налаштування версій офіційних адаптерів за тегами (tagged versions).- Виправлено некоректне пошкодження змінних середовища в
astro:env/serverтаimport.meta.env, якщо значення містили символи$.
Огляд підготовлено автоматично за офіційними release notes за допомогою ШІ та перевірено на відповідність джерелу. Точні формулювання дивіться в оригіналі. Як ми працюємо