Astro на Netlify Edge Functions

Автор
Matthew Phillips

Две недели назад мы объявили экспериментальную поддержку SSR с Netlify как партнёра запуска на Netlify Functions. Сегодня объявляем поддержку SSR на новой платформе Edge Functions от Netlify. Edge Functions запустились сегодня, и Astro поддерживает их с первого дня.

С SSR в Astro вы можете:

  • Строить большие CMS-сайты, которые сложно масштабировать со SSG.
  • Создавать приложения с аутентификацией и состоянием, например e-commerce бэкенды.
  • Использовать упрощённый HTML-подобный синтаксис с JavaScript только там, где нужно.

Edge rendering приближает SSR к пользователям, ускоряя первые байты в браузере. Вместе со статическими ассетами на edge это даёт оптимальную сетевую производительность. Astro стремится делать быстрые контентные сайты простыми, а Edge Functions от Netlify — идеальное место для развёртывания Astro SSR.

Для начала установите адаптер Netlify:

npm install @astrojs/netlify

И добавьте адаптер в astro.config.mjs:

import { defineConfig } from "astro/config"
import netlify from "@astrojs/netlify/edge-functions"
export default defineConfig({
adapter: netlify(),
})

Миграция с Netlify Functions

Astro уже доступен на Netlify Functions — serverless runtime на Node.js. С Edge Functions производительность ещё выше, и мы постарались упростить переход.

Совместимость

Netlify Edge Functions работают на Deno, но большинству Astro-приложений не нужно менять код. Адаптер Netlify компилирует и бандлит исходники для Deno.

Если зависимости используют встроенные модули Node.js, возможно, придётся остаться на Netlify Functions — там полноценный Node.js runtime.

Компонент <Markdown /> пока не работает вне Node.js. Альтернатива — страницы .md.

Миграция

Обновите @astrojs/netlify:

npm install @astrojs/netlify@latest

Затем обновите astro.config.mjs:

import { defineConfig } from 'astro/config';
import netlify from '@astrojs/netlify/functions';
import netlify from '@astrojs/netlify/edge-functions';
export default defineConfig({
adapter: netlify()
});

Готово! При следующей сборке будет SSR-совместимый билд для Edge Functions, который можно развернуть через netlify deploy --build.

Партнёрства

Netlify был партнёром запуска SSR для Astro. За короткое время мы увидели огромную поддержку других платформ — адаптеры уже созданы или в разработке.

Хотите адаптер для другой платформы — заходите в Discord, поможем!