확장 프로그램 서비스 워커 기본사항

확장 프로그램 서비스 워커는 웹 서비스 워커와 다르게 설치되고 업데이트됩니다. 이 페이지에서는 이러한 차이점을 설명합니다.

서비스 워커 등록

확장 프로그램 서비스 워커를 등록하려면 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는 원격 호스팅 코드를 지원하지 않습니다. 서비스 워커는 확장 프로그램 패키지의 일부여야 합니다.