공유 모듈

공유 모듈은 서로 공유할 수 있는 권한이 없는 리소스 모음입니다. 확장 프로그램 공유 모듈의 일반적인 용도는 다음과 같습니다.

  • API로. HTML, JS 및 기타 리소스를 제공할 수 있는 공유 모듈을 배포하여 사용하는 확장 프로그램과 독립적으로 업데이트될 수 있는 API를 제공해야 합니다.
  • 다운로드 최적화로. 공유 모듈에는 여러 확장 프로그램에서 사용하는 공통 리소스가 포함되어 있습니다. 종속 확장 프로그램이 처음 설치될 때 한 번 다운로드됩니다.

매니페스트

공유 모듈은 두 개의 매니페스트 필드("export""import")를 통해 사용됩니다.

내보내기

export 필드는 확장 프로그램이 리소스를 내보내는 공유 모듈임을 나타냅니다.

{
  "version": "1.0",
  "name": "My Shared Module",
  "export": {
    // Optional list of extension IDs explicitly allowed to
    // import this Shared Module's resources.  If no allowlist
    // is given, all extensions are allowed to import it.
    "allowlist": [
      "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
      "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"
    ]
  }
  // Note: no permissions are allowed in Shared Modules
}

가져오기

import 필드는 확장 프로그램과 앱이 특정 공유 모듈에 대해 자세히 알아볼 수 있습니다.

{
  "version": "1.0",
  "name": "My Importing Extension",
  ...
  "import": [
    {"id": "cccccccccccccccccccccccccccccccc"},
    {"id": "dddddddddddddddddddddddddddddddd"
     "minimum_version": "0.5" // optional
    },
  ]
}

리소스 액세스

공유 모듈 리소스는 루트의 예약된 경로 _modules/SHARED_MODULE_ID를 통해 액세스됩니다. 확인하시기 바랍니다. 예를 들어 공유 모듈에서 foo.js 스크립트를 ID가 'ccccccccccccccccccccccccc'인 경우 확장 프로그램의 루트에서 다음 경로를 사용합니다.

<script src="_modules/cccccccccccccccccccccccccccccccc/foo.js">

가져오는 확장 프로그램의 ID가 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaa'인 경우 리소스의 전체 URL은 다음과 같습니다.

chrome-extension://aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/_modules/cccccccccccccccccccccccccccccccc/

공유 모듈의 리소스는 가져오기의 출처에 오버레이되므로 가져오는 경우 확장 프로그램에 부여된 모든 권한은 공유 폴더에 있는 코드에 사용할 수 모듈. 또한 공유 모듈은 사용할 수 있습니다.

설치 / 제거

공유 모듈은 종속 확장 프로그램에서 필요할 때 Chrome 웹 스토어에서 자동으로 설치되며 이를 참조하는 마지막 확장 프로그램이 제거될 때 자동으로 제거됩니다. 공유 모듈을 사용하는 확장 프로그램을 업로드하려면 공유 모듈을 다음 위치에 게시해야 합니다. Chrome 웹 스토어 및 확장 프로그램의 공유 모듈 사용을 제한해서는 안 됩니다. 허용 목록에 추가합니다.

개발 중에 확장 프로그램에서 사용하는 공유 모듈을 수동으로 설치해야 합니다. 사이드로드되거나 압축해제된 상태로 로드되는 확장 프로그램에서는 자동 설치가 발생하지 않습니다. 확장 프로그램 로컬에 설치되고 압축해제된 공유 모듈의 경우 key 필드를 사용하여 다음을 실행해야 합니다. 공유 모듈이 올바른 ID를 사용하는지 확인해야 합니다.