Web App Manifest — это JSON-файл, который определяет параметры Progressive Web App (PWA), такие как название приложения, иконки, цветовая схема и способ отображения при запуске. В контексте Riot.js, как и в других фронтенд-фреймворках, манифест обеспечивает корректное поведение приложения на устройствах с мобильными и десктопными платформами, поддерживающими PWA.
Файл manifest.json обычно располагается в корне проекта
и имеет следующую базовую структуру:
{
"name": "Название приложения",
"short_name": "Краткое имя",
"description": "Описание приложения",
"start_url": "/index.html",
"display": "standalone",
"background_color": "#ffffff",
"theme_color": "#0000ff",
"icons": [
{
"src": "icons/icon-192x192.png",
"sizes": "192x192",
"type": "image/png"
},
{
"src": "icons/icon-512x512.png",
"sizes": "512x512",
"type": "image/png"
}
]
}
standalone, fullscreen,
minimal-ui, browser).Riot.js работает по принципу компонентов, где каждый компонент может иметь собственный шаблон, стиль и логику. Для интеграции PWA-манифеста с Riot.js необходимо:
index.html проекта:<link rel="manifest" href="/manifest.json">
<meta name="theme-color" content="#0000ff">
if ('serviceWorker' in navigator) {
navigator.serviceWorker.register('/sw.js')
.then(reg => console.log('Service Worker зарегистрирован', reg))
.catch(err => console.error('Ошибка регистрации Service Worker', err));
}
standalone подходит для
большинства приложений, чтобы скрыть элементы браузера.Каждый Riot-компонент можно рассматривать как отдельный UI-блок, а манифест задаёт глобальные настройки приложения. Это позволяет:
При сборке Riot.js-приложения с помощью сборщиков (Vite, Webpack) манифест включается в публичную папку и автоматически подключается через HTML-шаблон. Важные моменты:
manifest.json корректны
относительно корня сборки.После настройки манифеста и сервис-воркера можно проверить приложение с помощью Chrome DevTools:
Манифест задаёт глобальные параметры приложения, а Riot.js управляет компонентами и их состоянием. Совместная работа этих инструментов позволяет создавать Progressive Web App с полноценным мобильным и десктопным опытом: оффлайн-доступом, нативным интерфейсом и интеграцией с домашним экраном устройств. Это критически важно для современных веб-приложений, где удобство пользователя и скорость отклика играют ключевую роль.