Адаптеры и публикация
Чтобы сайт заработал не только у вас на компьютере, проект собирают командой npm run build. Результат зависит от того, где сайт будет работать: на сервере с Node.js, на облачной платформе или как набор статических файлов. Под каждую площадку есть адаптер (adapter) — пакет, который превращает сборку SvelteKit в нужный формат.
Адаптер по умолчанию
Проект из sv уже настроен на adapter-auto:
// svelte.config.js
import adapter from '@sveltejs/adapter-auto';
const config = {
kit: {
adapter: adapter()
}
};
export default config;adapter-auto сам определяет популярные площадки — Vercel, Netlify, Cloudflare — и подключает нужный адаптер при сборке на них. Для своего сервера адаптер выбирают явно.
Свой сервер: adapter-node
Установите адаптер:
npm install -D @sveltejs/adapter-nodeИ замените импорт в настройках:
// svelte.config.js
import adapter from '@sveltejs/adapter-node';
const config = {
kit: {
adapter: adapter()
}
};
export default config;Теперь соберите и запустите проект:
npm run build
node buildСборка появится в папке build, а команда node build запустит сервер. В терминале будет адрес — по умолчанию http://localhost:3000, и блог откроется вместе с формами и API. Порт меняют переменной окружения: PORT=8080 node build.
Статический сайт: adapter-static
Если у сайта нет серверной части — ни действий форм, ни +server.js, — его можно собрать в обычные HTML-файлы и положить на любой хостинг:
npm install -D @sveltejs/adapter-staticВ svelte.config.js импортируйте @sveltejs/adapter-static, а в корневом макете включите предварительную отрисовку всех страниц:
// src/routes/+layout.js
export const prerender = true;После npm run build в папке build окажутся готовые HTML-файлы для каждой страницы.
Какой адаптер выбрать
| Где работает сайт | Адаптер |
|---|---|
| Vercel, Netlify, Cloudflare | adapter-auto (или адаптер площадки) |
| свой сервер или Docker | adapter-node |
| статический хостинг | adapter-static |
Перед публикацией проверьте сборку локально: npm run preview запускает собранную версию.
Частая ошибка
Выбрать adapter-static для блога с формами и API. Действия из +page.server.js и файлы +server.js требуют работающего сервера, а статический сайт — это только файлы. Сборка остановится с ошибкой о страницах, которые нельзя отрисовать заранее. Для такого сайта нужен adapter-node или адаптер облачной площадки.