рабочая станция workbox, работающая везде, кроме Chrome: Uncaught (в обещании) DOMException - PullRequest
0 голосов
/ 15 января 2019

Workbox не работает на Chrome, но работает везде, что иронично, так как я считаю, что это библиотека Google, ошибка, которая показывает:

Uncaught (in promise) DOMException : sw.js line 1

Chrome:

enter image description here

Opera enter image description here

Firefox enter image description here

Я использую плагин workbox-webpack-plugin

webpack.config.js

    const workbox = require('workbox-webpack-plugin'); 

    module.exports = {
        plugins: [
            new workbox.GenerateSW({
                swDest: './service-worker.js',
                skipWaiting: true,
                clientsClaim: true
            })
        ]  
 }

index.ts (запись)

if ('serviceWorker' in navigator) {
  window.addEventListener('load', function() {
    navigator.serviceWorker.register('/js/app/dist/service-worker.js');
  }); 
}

РЕДАКТИРОВАТЬ: это строка кода, которая выдает ошибку

enter image description here

enter image description here

РЕДАКТИРОВАТЬ 2: на самом деле он работает в режиме icognito, удаление данных из браузера все равно не помогает.

enter image description here

РЕДАКТИРОВАТЬ 3: Обновление до новейшей бета-версии 1 еще хуже, поскольку помимо последних ошибок будет отображаться еще одна, однако эта версия работает и в режиме icognito в Chrome, и в других браузерах.

enter image description here

Ответы [ 3 ]

0 голосов
/ 21 января 2019

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

Можете ли вы открыть Application вкладку в devtools и нажать Clear storage > Clear site data? Это должно исправить эту проблему в большинстве случаев.

Disk Quota

0 голосов
/ 07 февраля 2019

Chrome автоматически обновился до версии 72, и теперь он работает для меня и моих коллег. Скорее всего, это исправленная ошибка.

0 голосов
/ 21 января 2019

Возможно, вы неправильно указали область действия вашего SW-файла. Попробуйте это:

if ('serviceWorker' in navigator) {
  window.addEventListener('load', function() {
    navigator.serviceWorker.register('/js/app/dist/service-worker.js', { scope: '/' });
  }); 
}

Если вы не можете переместить SW-файл, вам нужно добавить специальный заголовок в ваш бэкэнд:

Server {

    listen www.example.com:443 ssl;

    ...

    location /js/app/dist/service-worker.js {
        add_header 'Service-Worker-Allowed' '/';
    }
}

(конфигурация nginx)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...