Рабочие службы расширений устанавливаются и обновляются иначе, чем рабочие веб-службы. На этой странице объясняются эти различия.
Регистрация сервисных работников
Чтобы зарегистрировать работника службы расширений, укажите его в поле "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 не поддерживает удаленно размещенный код. Ваш сервисный работник должен быть частью пакета расширения.