Рабочие службы расширений устанавливаются и обновляются иначе, чем рабочие веб-службы. На этой странице объясняются эти различия.
Регистрация сервисных работников
Чтобы зарегистрировать работника службы расширений, укажите его в поле "background" файла manifest.json . Используйте ключ "service_worker" , который указывает один файл JavaScript. Сервисные работники на веб-страницах или в веб-приложениях регистрируют сервисных работников, сначала обнаруживая функции для serviceWorker в navigator , а затем вызывая register() внутри обнаружения функций. Это не работает для расширений.
{
"name": "Awesome Test Extension",
...
"background": {
"service_worker": "service-worker.js"
},
...
}
Импортировать скрипты
Существует два метода импорта сценариев в сервис-воркер: оператор import и метод importScripts() . Обратите внимание, что import() , часто называемый динамическим импортом, не поддерживается.
Чтобы использовать оператор import , добавьте в манифест поле "type" и укажите "module" . Например:
"background": {
"service_worker": "service-worker.js",
"type": "module"
}
Затем используйте import как обычно. Обратите внимание, что утверждения импорта не поддерживаются.
import { tldLocales } from './locales.js';
Используйте importScripts() так же, как и в рабочем веб-сервисе.
importScripts('locales.js');
Обновлять
Чтобы обновить сервис-воркера, опубликуйте новую версию вашего расширения в Интернет-магазине Chrome. Вы не можете обойти это, загрузив расширение с сервера. По соображениям безопасности Manifest V3 не поддерживает удаленно размещенный код. Ваш сервисный работник должен быть частью пакета расширения.