Режимы сборки: SPA, SSR, PWA, Electron, Capacitor

↑ 5.3 Quasar · ← Предыдущая · → Следующая

Обязательно~3 мин чтенияУровень: middle

Зачем это на собесе

Ключевое преимущество Quasar — единая кодовая база для разных платформ; нужно знать ограничения каждого режима.

Объяснение

РежимРезультатОсобенности
SPAстатические файлыпростой деплой на CDN/nginx; SEO ограничено
SSRNode-сервер, HTML на сервереSEO, быстрый первый показ; нужно оберегать код от использования window на сервере, гидратация, preFetch
PWASPA + Service Worker + manifestофлайн, установка, push; Workbox (GenerateSW/InjectManifest), стратегии кэша
Electronдесктоп (Windows/macOS/Linux)доступ к Node/ОС, main/preload-процессы, безопасность (contextIsolation, IPC)
Capacitor (или Cordova)мобильное приложение (iOS/Android)нативные плагины (камера, файлы, push), сборка в Xcode/Android Studio
BEXбраузерное расширениеmanifest v3
quasar mode add pwa && quasar build -m pwa
quasar mode add capacitor && quasar dev -m capacitor -T android
quasar build -m electron

Общие практики:

  • Платформенно-зависимый код скрыт за адаптерами/фичефлагами ($q.platform.is.capacitor), проверка process.env.MODE, process.env.CLIENT.
  • Конфигурация окружения отдельно на режим (build.env).
  • PWA: стратегии кэширования (Cache First для ассетов, Network First для API), обновление приложения (skipWaiting + уведомление), офлайн-страница, HTTPS.
  • SSR: без window/document на сервере; хранилища — на запрос (Pinia), данные — preFetch; кэширование страниц.
  • Electron/Capacitor: безопасность (не отключать contextIsolation, минимальные IPC), подпись и обновление приложений.

Выбор: внутренние корпоративные системы — обычно SPA (и PWA при необходимости), публичные страницы с SEO — SSR или prerender, мобильные — Capacitor.

Нюансы и подводные камни

  • Service Worker кэширует агрессивно: пользователи «застревают» на старой версии без стратегии обновления.
  • SSR увеличивает сложность деплоя и мониторинга (Node-процесс).
  • Мобильные режимы требуют нативных SDK и подписи; веб-API отличаются.
  • Не все библиотеки поддерживают SSR/Electron.

Практика

  1. Добавьте режим PWA и проверьте офлайн-работу и установку.
  2. Соберите SPA и SSR и сравните первый показ.
  3. Опишите, какие платформенные различия вы изолируете адаптерами.

Вопросы с ответами

Связанные темы