확장 프로그램 서비스 워커는 웹 서비스 워커와 다르게 설치되고 업데이트됩니다. 이 페이지에서는 이러한 차이점을 설명합니다.
서비스 워커 등록
확장 프로그램 서비스 워커를 등록하려면 manifest.json
파일의 "background"
필드에 지정합니다. 단일 JavaScript 파일을 지정하는 "service_worker"
키를 사용합니다. 웹페이지 또는 웹 앱의 서비스 워커는 먼저 navigator
에서 serviceWorker
를 특성 감지한 다음 특성 감지 내에서 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는 원격 호스팅 코드를 지원하지 않습니다. 서비스 워커는 확장 프로그램 패키지의 일부여야 합니다.