16 ноября 2018 г.

Вы хотите запустить свое приложение Ionic 4 в режиме PWA «prod» на своем локальном компьютере для разработки? Убедитесь, что вы используете этот режим только при работе с иконками PWA, цветами и сервис-воркером. После того, как они заработают так, как вы хотите, удалите работника службы в своем браузере и используйте ionic serve для работы над своим приложением. В противном случае сервисный работник будет продолжать кэшировать ваши файлы, пока вы разрабатываете приложение.

Это было создано и протестировано на macOS Mojave с использованием Ionic CLI 4.3.0, Ionic 4.0.0-beta.16 и Angular 7.0.0.

Установите инструменты

Ionic предназначен для создания и запуска вашего проекта (последняя версия использует Angular 7), а http-сервер — для запуска и тестирования вашего проекта в качестве PWA.

sudo npm install -g ionic@latest http-server

Создать проект

Перейдите в каталог ваших проектов и запустите команду ionic, чтобы создать проект под названием «ionic4pwa» из стартового меню. Вы можете ответить Нет на вопрос об использовании Ionic Pro SDK.

cd ~/Projects
ionic start ionic4pwa sidemenu --type=angular

Запустите ионный проект

Команда ionic serve создаст ваш проект (в режиме разработки), запустит сервер и откроет проект в браузере. Это обеспечит работоспособность проекта и готовность добавить код PWA. (Ionic использует порт 8100 для обслуживания вашего приложения.)

cd ionic4pwa
ionic serve

Нажмите ctrl-c, чтобы остановить сервер и вернуться к командной строке.

Добавить PWA

Добавьте стандартный компонент angular pwa с именем проекта по умолчанию «app» (он находится в файле angular.json).

ng add @angular/pwa --project app

Если у вас есть ионный проект, использующий Angular 6.x (проверьте файл package.json), вам нужно будет указать более старую версию pwa: ng add @angular/pwa@v6-lts --project app.

Создайте PWA

Соберите проект в производственном режиме, который активирует рабочий код службы PWA.

ionic build --prod

Запустите проект PWA

Вручную запустите сервер в каталоге www без кэширования файлов (-c-1).

http-server www -c-1

Проверить в Chrome

Откройте хром, перейдите по адресу http://localhost:8080 и проверьте страницу (откройте инструменты разработчика).

Проверьте PWA на вкладке приложения

Перейдите на вкладку «Приложение» в инструментах разработчика Chrome и убедитесь, что на странице «Манифест» отображается файл манифеста (/manifest.json), а на странице «Служебные работники» отображается ваш рабочий процесс (ngsw-worker.js).

Проверка кэширования Service Worker

Перейдите на вкладку «Сеть» в Chrome, перезагрузите приложение и убедитесь, что в столбце размера указано «(из ServiceWorker)» для всех кэшируемых файлов.

Как удалить PWA

Когда вы вносите изменения в свое приложение или сервис-воркер, вам необходимо отменить регистрацию сервис-воркера (в Chrome › вкладка «Приложение» › страница «Сервис-воркеры») ИЛИ очистить данные сайта (в нижней части Chrome › вкладка «Приложение» › страница «Очистить хранилище»). .

Одна нерешенная проблема: Маяк

Я не могу Выполнить аудит на вкладке Chrome › Audits на локальном хосте из-за ошибки 404 во время тестов на пути /home. Когда я разворачиваю на хостинге firebase и провожу там аудит, он работает отлично (и получает 100 баллов на PWA). Если кто-нибудь знает простое решение для запуска аудита на локальном хосте, сообщите мне.

Репозиторий Github

Код этого проекта вы найдете на https://github.com/dolthead/ionic4pwa. На ветке master всего 2 коммита: исходный код от команды ionic start и код после добавления функционала PWA.