Astro: адаптеры для деплоя (Node, Netlify, Vercel)
Настройка адаптеров Astro для SSR: Node (standalone), Netlify, Vercel. Установка и конфиг в astro.config.mjs.
Как использовать
- Скопируйте нужный фрагмент кода.
- Вставьте в свой проект и при необходимости измените под задачу.
- Проверьте зависимости и окружение (версии, переменные).
Для режимов output: "server" и output: "hybrid" в Astro нужен adapter, который подключает сборку к целевой платформе. Ниже — установка и минимальный конфиг для Node, Netlify и Vercel по официальной документации.
Установка адаптеров:
# Node.js (standalone сервер)
pnpm astro add node
# Netlify
pnpm astro add netlify
# Vercel
pnpm astro add vercel
Node.js adapter (Deploy to your own server):
// astro.config.mjs
import { defineConfig } from "astro/config";
import node from "@astrojs/node";
export default defineConfig({
output: "server",
adapter: node({
mode: "standalone", // standalone | middleware
}),
});
Запуск после сборки:
pnpm build
node dist/server/entry.mjs
Netlify adapter (Netlify):
// astro.config.mjs
import { defineConfig } from "astro/config";
import netlify from "@astrojs/netlify";
export default defineConfig({
output: "server",
adapter: netlify({
edgeMiddleware: true, // опционально: Edge Functions для middleware
}),
});
Деплой: подключить репозиторий, Build command — pnpm build, Publish directory — dist.
Vercel adapter (Vercel):
// astro.config.mjs
import { defineConfig } from "astro/config";
import vercel from "@astrojs/vercel/serverless";
export default defineConfig({
output: "server",
adapter: vercel({
isr: {
expiration: 60, // ISR: ревалидация каждые 60 секунд (опционально)
},
}),
});
Деплой: подключить репозиторий, Framework Preset — Astro, Build Command — pnpm build, Output Directory — dist.
Usage:
- После смены adapter пересобери проект:
pnpm build. - Секреты задавай в переменных окружения платформы (Netlify/Vercel dashboard или
.envлокально). - Для Node на своём сервере можно добавить process manager (systemd, PM2) и reverse proxy (Nginx).
Notes:
⚠️ Режим output: "server" или "hybrid" требует выбранный adapter; без него сборка с SSR не заработает. Для статического сайта (output: "static") адаптер не нужен — можно деплоить dist на любой статический хостинг.