Превратите проект React в прогрессивное веб-приложение

#reactjs #progressive-web-apps

Вопрос:

Я создал веб-приложение (серверная часть symfony и интерфейс React), и я заинтересован в создании прогрессивного веб-приложения. В целом, это кажется осуществимым. Вам нужно создать файл manifest.json и сотрудника службы. Однако я не знаю, где создать эти два файла, чтобы это учитывалось при создании сборки npm (или даже сервера разработки npm, если это возможно). Когда я перетаскиваю эти файлы в корень, браузер сообщает мне, что он не находит ни одного из этих файлов.

Ответ №1:

Вы можете загрузить свое приложение с помощью шаблона PWA, выполнив приведенную ниже команду:

 npx create-react-app YOUR_PROJECT_NAME --template cra-template-pwa
 

Аргумент --template cra-template-pwa добавляется для создания приложения с сотрудником службы.

Каталог вашего вновь созданного проекта содержит файл index.js . Откройте его и найдите следующий код:

 serviceWorker.unregister();
 

Здесь вы можете видеть, что сотрудник службы еще не зарегистрирован. Вы должны изменить unregister() вызов на register() .

 serviceWorker.register();
 

Настройте манифест веб-приложения для вашего прогрессивного веб-приложения, который находится в manifest.json файле в общедоступном каталоге. Здесь вам необходимо изменить метаданные, которые отвечают за внешний вид вашего приложения.

Комментарии:

1. Спасибо вам за вашу помощь, но это в том случае, когда вы создаете новый проект. В моем случае проект уже существует.

2. Для существующего проекта вам необходимо вручную установить необходимые пакеты с помощью команды npm: npm i workbox-background-sync workbox-broadcast-update workbox-cacheable-response workbox-core workbox-expiration workbox-google-analytics workbox-navigation-preload workbox-precaching workbox-range-requests workbox-routing workbox-strategies workbox-streams А также добавить manifest.json файл в общую папку service-worker.js и serviceWorkerRegistration.js в папку src