Да! Я не знаю, у меня тоже была такая же проблема регистрации 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 на этот файл.