Есть ли приложения для деплоя?
Что проверяют
Знаете ли вы, как фронтенд попадает к пользователю, и понимаете ли разницу между статикой и приложением с серверным рендерингом. Следом обычно спрашивают, как был устроен деплой на прошлом проекте и как откатить неудачный релиз.
Как отвечать
Сначала разделите два случая, от них зависит выбор:
- статика (SPA, SSG): после
npm run buildполучается набор файлов. Их кладут куда угодно: GitHub Pages, Netlify, Cloudflare Pages, объектное хранилище S3 или Yandex Object Storage с CDN перед ним, nginx в контейнере; - SSR (Next.js, Nuxt, SvelteKit): нужен рантайм Node.js или edge-функции. Vercel и Netlify берут серверную часть на себя, либо приложение собирают в Docker-образ и запускают на своём сервере или в Kubernetes;
- платформы с Git-интеграцией: Vercel, Netlify, Cloudflare сами собирают проект на каждый пуш и поднимают preview-окружение на каждую ветку или pull request, это удобно для ревью;
- свой CI/CD: GitHub Actions или GitLab CI гоняют линтер, тесты и сборку, затем публикуют артефакт. Так делают, когда нужен контроль или хостинг внутри страны.
Дальше покажите, что знаете детали, которые ломаются на проде. Файлы с хэшем в имени отдают с долгим кэшем (Cache-Control: max-age=31536000, immutable), а index.html без кэша, иначе пользователи застрянут на старой версии. Для SPA сервер должен отдавать index.html на любой неизвестный путь, иначе обновление страницы на /profile даст 404. Откат на платформах делается переключением на прошлый деплой, в своём CI через повторную публикацию предыдущего артефакта.
Где спотыкаются
Называют Heroku бесплатным вариантом по умолчанию. Бесплатные тарифы там убрали ещё в 2022 году, а для статики он и не нужен.
Кладут секреты в переменные с префиксом VITE_ или NEXT_PUBLIC_. Они вклеиваются в бандл при сборке и видны любому в браузере.
Путают деплой со сборкой. Сборка и тесты это одна часть, а публикация, кэширование и откат другая, и о второй кандидаты часто молчат.