Я пытаюсь использовать служебный файл, который также является модулем ESM.
У метода register
есть дополнительный аргумент, принимающий объект options
с полем type
, допустимые значения которогокажется, classic
и module
, но когда я использую:
navigator.serviceWorker.register('worker.js', { type: 'module' });
// `worker.mjs` doesn't work either
// The file exists in both cases!
я получаю неопределенное DOMException
без сообщения в Chrome.
Я понял, что допустимые значениядля type
были прочитаны спецификации, а именно:
https://html.spec.whatwg.org/multipage/workers.html#workertype
Мне кажется, что мой код действителен.
Как проверка работоспособности, ятакже попытался установить explicity type
в classic
, и регистрация работника службы затем проходит нормально.Если установить недопустимое значение, я получу сообщение TypeError
, поэтому браузер еще не знает о type: module
.Он рассматривается как особый случай, просто выдает DOMException
без сообщения.
Правильно ли я использую поле type
?Это все еще слишком рано и не поддерживается в браузерах?