#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