Как включить serviceworker в развертывании heroku с помощью creat-Reaction-app? - PullRequest
2 голосов
/ 09 июля 2019

Я создал приложение с помощью create-реагировать-приложение, которое развертывается с помощью heroku. Я заменил serviceWorker.ubregister(); на serviceWorker.register();. Работник сервиса работает нормально, когда я выполнил следующие шаги с https://facebook.github.io/create-react-app/docs/deployment

npm i -g serve
serve -s build -l 4000

Я предполагаю что-то связанное с process.env.PUBLIC_URL, но не уверен, как это исправить.

Код можно найти: https://github.com/subhendukundu/gif-code-snippet Размещено в: https://gif -code-snippet.herokuapp.com /

Ответы [ 2 ]

0 голосов
/ 20 июля 2019

Да! Я не знаю, у меня тоже была такая же проблема регистрации ServiceWorker во время моей разработки PWA.

Я думаю, что есть проблема с файлом serviceWorker.js , который поставляется с create-react-app. Таким образом, у меня был пользовательский serviceWorker.js , который был более дружественным к разработке с журналами на консоли, показывающими соответствующие события ServiceWorker. Я считаю полезной функцию register(), приведенную ниже.

export default function register() {
  if (process.env.NODE_ENV === "production" && "serviceWorker" in navigator) {
    // The URL constructor is available in all browsers that support SW.
    const publicUrl = new URL(process.env.PUBLIC_URL, window.location);
    if (publicUrl.origin !== window.location.origin) {
      // Our service worker won't work if PUBLIC_URL is on a different origin
      // from what our page is served on. This might happen if a CDN is used to
      // serve assets; see https://github.com/facebookincubator/create-react-app/issues/2374
      return;
}

Хотя window.location и window.location.href являются синонимами. Я предпочитаю первый, так как process.env.PUBLIC_URL по умолчанию это путь, а не URL.

Однако я рекомендую вам заменить файл serviceWorker.js на этот файл.

0 голосов
/ 18 июля 2019

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

git clone https://github.com/subhendukundu/gif-code-snippet.git
cd gif-code-snippet
heroku create -b https://github.com/mars/create-react-app-buildpack.git
git push heroku master
heroku open

Не стесняйтесь проверить здесь

...