Интеграции calendar_today 21 апр. 2026 г. schedule 4 мин

Экосистема Astro: Лучшие готовые интеграции и плагины

Полный обзор экосистемы плагинов Astro. Разбираем UI-фреймворки, адаптеры SSR, SEO-утилиты, поиск по сайту (Pagefind), оффлоадинг скриптов (Partytown) и Markdoc.

person
Журналист
Автор
Схема работы интеграций в Astro

Одной из причин феноменального успеха Astro стала его система Интеграций. В отличие от классических плагинов других сборщиков (Webpack, Rollup), которые могут делать только одну вещь, интеграции Astro — это умные расширения, которые могут:

  • Добавлять поддержку новых UI-фреймворков (React, Vue, Svelte).
  • Изменять конфигурацию Vite.
  • Генерировать файлы в папку dist при сборке (sitemap.xml, manifest).
  • Добавлять middleware и менять логику серверного роутинга.

Устанавливается любая интеграция одной командой. Astro сам добавляет её в конфиг и предлагает создать нужные конфигурационные файлы:

code
npx astro add tailwind        # Tailwind CSS
npx astro add react           # Острова на React
npx astro add cloudflare      # SSR-адаптер для Cloudflare

Давайте пройдемся по ключевым категориям.


1. UI-фреймворки (Острова интерактивности)

Agnosticism (агностичность) — главная идеология Astro. Вы не привязаны к одному UI-фреймворку. Более того, вы можете использовать несколько на одной странице.

ФреймворкПакетРазмер рантайма
React@astrojs/react~45 КБ
Preact@astrojs/preact~4 КБ
Vue@astrojs/vue~30 КБ
Svelte@astrojs/svelte~1.5 КБ
SolidJS@astrojs/solid-js~7 КБ
Alpine.js@astrojs/alpinejs~15 КБ

Практический совет: Если вам нужна небольшая интерактивность (мобильное меню, аккордеон, счетчик), выбирайте Alpine.js — он работает прямо в HTML-атрибутах без JSX и весит в 10 раз меньше React. Для сложных форм с состоянием — React или Svelte.


2. SEO и Производительность

@astrojs/sitemap

Автоматически генерирует sitemap.xml при каждом npm run build. Поддерживает:

  • Динамические маршруты (из Content Collections).
  • Исключение страниц через filter.
  • Поддержку i18n (генерирует sitemap-index.xml с дочерними картами для каждого языка).
code
// astro.config.mjs
import sitemap from '@astrojs/sitemap';

export default defineConfig({
  site: 'https://yoursite.com',
  integrations: [
    sitemap({
      filter: (page) => !page.includes('/admin/'), // Исключаем страницы админки
      changefreq: 'weekly',
      priority: 0.7,
    }),
  ],
});

Partytown — магия Web Workers

Partytown

(@astrojs/partytown) решает одну из главных болей PageSpeed: тяжелые сторонние скрипты.

Google Analytics 4 (gtag.js), Яндекс.Метрика, Facebook Pixel, HotJar — всё это скрипты, которые загружаются и выполняются в главном потоке браузера, конкурируя за ресурсы с вашим интерфейсом. Именно они съедают 20-40 баллов в PageSpeed.

Partytown перемещает эти скрипты в фоновый Web Worker. Браузер выполняет их изолированно, не блокируя рендеринг UI.

code
---
// src/layouts/BaseLayout.astro
import { Partytown } from '@astrojs/partytown/components';
---

<head>
  <!-- Все скрипты с type="text/partytown" переедут в Web Worker -->
  <Partytown debug={false} forward={['dataLayer.push', 'gtag']} />

  <!-- Google Analytics теперь не тормозит страницу! -->
  <script type="text/partytown">
    window.dataLayer = window.dataLayer || [];
    function gtag() {
      dataLayer.push(arguments);
    }
    gtag('js', new Date());
    gtag('config', 'G-XXXXXXXXXX');
  </script>
</head>

Результат: +15-25 баллов PageSpeed при той же аналитике.


3. Адаптеры для SSR-деплоя

При включении серверного рендеринга (output: 'server' или 'hybrid') Astro нужен адаптер, объясняющий ему, как запускаться на конкретной платформе.

ПлатформаПакетЧто делает
Cloudflare Workers/Pages@astrojs/cloudflareСобирает под workerd-рантайм
Vercel@astrojs/vercelEdge Functions + Image Optimization
Netlify@astrojs/netlifyNetlify Functions + Edge
Node.js (VPS/Docker)@astrojs/nodeExpress-подобный standalone сервер

Переезд с Vercel на Cloudflare — это буквально замена одной строки в astro.config.mjs и смена пакета. Никакого рефакторинга кода.


4. Контент и Стилизация

@astrojs/mdx

Добавляет поддержку MDX-файлов — возможность писать JSX-компоненты прямо внутри Markdown-текстов. Поддерживает плагины remark и rehype для расширения синтаксиса.

@astrojs/markdoc

Интеграция с Markdoc — форматом от команды Stripe. Это более строгая, типизированная альтернатива MDX. В Markdoc теги ({% %}) явно отделены от JSX-синтаксиса, что делает его безопаснее для использования в многопользовательских CMS (редактор не может случайно выполнить произвольный код).

@astrojs/tailwind / @astrojs/db

  • @astrojs/tailwind — моментально подключает Tailwind CSS v4 с правильно настроенным PostCSS.
  • @astrojs/db — официальная интеграция с Astro DB (на базе libSQL/Turso).

5. Поиск по статическому сайту: Pagefind

Реализовать быстрый полнотекстовый поиск по статическому сайту всегда было сложно. Платный Algolia или тяжелый ElasticSearch — единственные варианты в прошлом.

Pagefind (интеграция astro-pagefind) решает это элегантно и бесплатно:

  1. После npm run build Pagefind сканирует все HTML-файлы и создает бинарный индекс (обычно 50-200 КБ для большого сайта).
  2. В браузере поиск выполняется локально через WebAssembly — никаких серверных запросов, никаких задержек.
  3. Результаты появляются мгновенно, с подсветкой найденных слов.
code
# Установка
npm install astro-pagefind

# Запуск индексации (после сборки)
npm run build
code
---
// src/components/Search.astro
import PagefindUI from 'astro-pagefind/components/PagefindUI';
---

<PagefindUI id="search" showImages={false} />

6. Экосистема сообщества (Community Integrations)

Помимо официальных интеграций, на astro.build/integrations собрано более 1 000 плагинов от сообщества:

  • astro-compress — автоматически минимизирует HTML, CSS, JS и оптимизирует SVG при сборке.
  • astro-robots-txt — генерирует файл robots.txt на основе конфигурации.
  • astro-seo — удобный компонент для настройки всех SEO-метатегов (OpenGraph, Twitter Cards, JSON-LD).
  • @astro-community/astro-embed-youtube — ленивая загрузка YouTube-видео (только превью до первого клика).
  • astro-icon — доступ к 200 000+ иконок (через Iconify) прямо в Astro-компонентах без npm-зависимостей.

Итог

Экосистема Astro — это одна из ключевых причин выбора фреймворка. Вам не нужно «изобретать велосипед» для решения типовых задач: карта сайта, поиск по статике, оффлоадинг аналитики, SSR на Edge — для всего этого есть готовые, хорошо поддерживаемые интеграции. Установка любой из них занимает одну команду в терминале.

edit

Как работает MDX?

Узнайте, как использовать интерактивные компоненты в тексте в статье про MDX.

database

Выбор базы данных

Обзор Astro DB, PocketBase и PostgreSQL в нашем сравнении баз данных.

Портрет автора Дмитрий Соколов

Senior Frontend Engineer / Tech Writer

Senior Frontend Engineer с 9-летним опытом. Специализируется на Astro.js и JAMstack.

Комментарии

Загрузка комментариев...

Оставить комментарий

Комментарии проходят модерацию перед публикацией. Правила

Рекомендуем к прочтению