이 출시되었습니다! 11월의 새로운 기능 및 수정 사항을 읽어보세요.

확장 프로그램 게시

고품질 확장 프로그램을 만들었다면, 다른 사람들이 여러분의 확장 프로그램을 찾고, 다운로드하고, 사용할 수 있도록 VS Code 확장 프로그램 마켓플레이스에 게시할 수 있습니다. 또는 확장 프로그램을 설치 가능한 VSIX 형식으로 패키징하여 다른 사용자와 공유할 수도 있습니다.

이 주제에서는 다음을 다룹니다.

vsce

vsce는 "Visual Studio Code Extensions"의 약자로, VS Code 확장 프로그램을 패키징, 게시 및 관리하기 위한 명령줄 도구입니다.

설치

Node.js가 설치되어 있는지 확인하세요. 그런 다음 실행하세요.

npm install -g @vscode/vsce

사용법

vsce를 사용하여 확장 프로그램을 쉽게 패키징하고 게시할 수 있습니다.

$ cd myExtension
$ vsce package
# myExtension.vsix generated
$ vsce publish
# <publisher id>.myExtension published to VS Code Marketplace

vsce는 확장 프로그램을 검색하고, 메타데이터를 가져오고, 게시를 취소하는 기능도 제공합니다. 사용 가능한 모든 vsce 명령에 대한 참조는 vsce --help를 실행하여 확인할 수 있습니다.

확장 프로그램 게시


참고

보안상의 이유로 vsce는 사용자 제공 SVG 이미지가 포함된 확장 프로그램은 게시하지 않습니다.

게시 도구는 다음 제약 조건을 확인합니다.

  • package.json에 제공된 아이콘은 SVG일 수 없습니다.
  • package.json에 제공된 배지는 신뢰할 수 있는 배지 제공업체의 것이 아닌 이상 SVG일 수 없습니다.
  • README.mdCHANGELOG.md의 이미지 URL은 https URL로 확인되어야 합니다.
  • README.mdCHANGELOG.md의 이미지는 신뢰할 수 있는 배지 제공업체의 것이 아닌 이상 SVG일 수 없습니다.

Visual Studio Code는 마켓플레이스 서비스에 Azure DevOps를 사용합니다. 이는 확장 프로그램의 인증, 호스팅 및 관리가 Azure DevOps를 통해 제공됨을 의미합니다.

vsce개인 액세스 토큰만을 사용하여 확장 프로그램을 게시할 수 있습니다. 확장 프로그램을 게시하려면 최소 하나를 생성해야 합니다.

개인 액세스 토큰 받기

먼저, 문서를 따라 Azure DevOps에서 자신만의 조직을 생성하세요. 다음 예시에서는 조직 이름이 vscode이지만, 실제 조직 이름을 사용해야 합니다. 조직 이름이 게시자 이름과 반드시 같을 필요는 없습니다.

  1. 조직 홈 페이지(예: https://dev.azure.com/vscode)에서 프로필 이미지 옆의 사용자 설정 드롭다운 메뉴를 열고 **개인 액세스 토큰**을 선택하세요.

    Personal settings menu

  2. **개인 액세스 토큰** 페이지에서 **새 토큰**을 선택하세요.

    Create new token button

  3. 새 개인 액세스 토큰 생성 모달에서 토큰에 대해 다음 세부 정보를 선택하세요.

    • 이름: 토큰에 원하는 이름
    • 조직: **액세스 가능한 모든 조직**
    • 만료 (선택 사항): 토큰의 원하는 만료 날짜 설정
    • 범위: **사용자 지정 정의**
      • **범위** 섹션 아래의 **모든 범위 보기** 링크를 클릭하세요.
      • 범위 목록에서 **Marketplace**로 스크롤하고 **Manage** 범위를 선택하세요.

    Create personal access token

  4. **만들기**를 클릭하세요.

    새로 생성된 개인 액세스 토큰이 표시됩니다. **복사**하여 안전한 곳에 보관하세요. 이 토큰은 게시자를 생성하는 데 필요합니다.

게시자 만들기

**게시자**는 Visual Studio Code 마켓플레이스에 확장 프로그램을 게시할 수 있는 ID입니다. 모든 확장 프로그램은 package.json 파일publisher 식별자를 포함해야 합니다.

게시자를 만들려면

  1. Visual Studio 마켓플레이스 게시자 관리 페이지로 이동하세요: Visual Studio Marketplace publisher management page.

  2. 이전 섹션에서 개인 액세스 토큰을 만드는 데 사용한 것과 동일한 Microsoft 계정으로 로그인하세요.

  3. 왼쪽 창에서 **게시자 만들기**를 클릭하세요.

  4. 새 페이지에서 새 게시자에 대한 필수 매개변수인 식별자와 이름(각각 **ID** 및 **이름** 필드)을 지정하세요.

    • **ID**: 마켓플레이스에서 게시자의 고유 식별자이며 확장 프로그램 URL에 사용됩니다. ID는 생성 후 변경할 수 없습니다.
    • **이름**: 마켓플레이스에 확장 프로그램과 함께 표시될 게시자의 고유 이름입니다. 회사 또는 브랜드 이름이 될 수 있습니다.

    다음은 Python 확장 프로그램의 게시자 식별자 및 이름 예시입니다.

    Example of publisher identifier and name

  5. 선택적으로 나머지 필드를 채우세요.

  6. **만들기**를 클릭하세요.

  7. vsce를 사용하여 새로 생성된 게시자를 확인하세요. 터미널에서 다음 명령을 실행하고, 프롬프트가 나타나면 이전 단계에서 생성한 개인 액세스 토큰을 입력하세요.

    vsce login <publisher id>
    
    https://marketplace.visualstudio.com/manage/publishers/
    Personal Access Token for publisher '<publisher id>': ****************************************************
    
    The Personal Access Token verification succeeded for the publisher '<publisher id>'.
    

확인 후 확장 프로그램을 게시할 준비가 되었습니다.

확장 프로그램 게시

확장 프로그램을 두 가지 방법으로 게시할 수 있습니다.

  1. vsce publish 명령을 사용하여 자동으로 게시

    vsce publish
    

    위의 vsce login 명령으로 개인 액세스 토큰을 아직 제공하지 않았다면, vsce가 토큰을 요청합니다.

  2. vsce package를 사용하여 확장 프로그램을 설치 가능한 VSIX 형식으로 패키징한 다음, Visual Studio 마켓플레이스 게시자 관리 페이지(Visual Studio Marketplace publisher management page)에 수동으로 업로드하여 게시

    Add an extension through management page

확장 프로그램 설치 및 평점 검토

Visual Studio 마켓플레이스 게시자 관리 페이지(Visual Studio Marketplace publisher management page)에서는 각 확장 프로그램의 기간별 획득 추세, 총 획득 수 및 평점/리뷰에 액세스할 수 있습니다. 보고서를 보려면 확장 프로그램을 클릭하거나 **자세히 보기 > 보고서**를 선택하세요.

Marketplace extension report

확장 프로그램 버전 자동 증가

확장 프로그램을 게시할 때, SemVer와 호환되는 숫자 또는 버전(major, minor, 또는 patch)을 지정하여 버전 번호를 자동으로 증가시킬 수 있습니다. 예를 들어, 확장 프로그램 버전을 1.0.0에서 1.1.0으로 업데이트하려면 다음과 같이 지정합니다.

vsce publish minor

또는

vsce publish 1.1.0

두 명령 모두 먼저 확장 프로그램의 package.json version 속성을 수정하고, 업데이트된 버전으로 게시합니다.

참고

git 저장소에서 vsce publish를 실행하면, npm-version을 통해 버전 커밋과 태그도 생성됩니다. 기본 커밋 메시지는 확장 프로그램의 버전이지만, -m 플래그를 사용하여 사용자 지정 커밋 메시지를 제공할 수 있습니다. (현재 버전은 커밋 메시지에서 %s를 사용하여 참조할 수 있습니다.)

확장 프로그램 게시 취소

Visual Studio 마켓플레이스 게시자 관리 페이지(Visual Studio Marketplace publisher management page)에서 **자세히 보기 > 게시 취소**를 클릭하여 확장 프로그램을 게시 취소할 수 있습니다.

Unpublish the extension via the Marketplace management page

게시가 취소되면 확장 프로그램의 가용성 상태가 **게시 취소됨**으로 변경되며, 더 이상 마켓플레이스 및 Visual Studio Code에서 다운로드할 수 없습니다.

Unpublished extension

참고

확장 프로그램을 게시 취소할 때 마켓플레이스는 확장 프로그램 통계를 보존합니다. 확장 프로그램은 공개적으로 검색 가능하며 기존 API를 통해 사용할 수 있습니다.

확장 프로그램 제거

확장 프로그램을 두 가지 방법으로 제거할 수 있습니다.

  1. vsceunpublish 명령을 사용하여 자동으로 제거

    vsce unpublish <publisher id>.<extension name>
    
  2. Visual Studio 마켓플레이스 게시자 관리 페이지(Visual Studio Marketplace publisher management page)에서 **자세히 보기 > 제거**를 클릭하여 수동으로 제거

    Remove the extension via the Marketplace management page

두 경우 모두, 확장 프로그램 이름을 입력하여 제거를 확인하라는 메시지가 표시됩니다. 제거 작업은 **되돌릴 수 없습니다**.

참고

확장 프로그램을 제거하면 마켓플레이스는 모든 확장 프로그램 통계도 제거합니다. 확장 프로그램을 제거하기보다는 게시 취소하는 것이 좋습니다.

확장 프로그램 사용 중단

확장 프로그램을 단순히 사용 중단하거나, 다른 확장 프로그램 또는 설정을 대신하여 사용 중단할 수 있습니다. 사용 중단된 확장 프로그램은 UI에서 흐릿한 취소선 텍스트로 표시됩니다.

Rust extension shown as deprecated in extension search

각 사용 중단된 확장 프로그램은 확장 프로그램 타일의 오른쪽 하단에 노란색 경고 아이콘이 표시됩니다(위 스크린샷 참조). 확장 프로그램 타일에 마우스를 올리면 이 아이콘 옆에 사용 중단 세부 정보가 표시되며, 다음 중 하나입니다.

  • 대체 없이 사용 중단된 확장 프로그램

    Deprecated extension without alternatives

  • 다른 확장 프로그램을 대신하여 사용 중단된 확장 프로그램

    Deprecated extension with an alternative extension

  • 설정을 대신하여 사용 중단된 확장 프로그램

    Deprecated extension with an alternative setting

VS Code는 이미 설치된 사용 중단된 확장 프로그램을 자동으로 마이그레이션하거나 제거하지 않습니다. 사용 중단된 확장 프로그램에 대체 확장 프로그램이나 설정이 있는 경우, VS Code는 **마이그레이션** 버튼을 표시하여 지정된 대체 항목으로 신속하게 전환할 수 있도록 도와줍니다.

Deprecated extension with a migrate button

확장 프로그램을 사용 중단으로 표시하려면 사용 중단된 확장 프로그램 토론 스레드에 댓글을 남겨주세요.

참고

현재 확장 프로그램은 마켓플레이스에 사용 중단으로 표시되지 않습니다. 이 기능은 나중에 제공될 예정입니다.

확장 프로그램 패키징

확장 프로그램을 패키징하도록 선택할 수 있습니다. 이는 다음을 위한 것입니다.

  • 자신의 VS Code 인스턴스에서 테스트.
  • 마켓플레이스에 게시하지 않고 배포.
  • 비공개로 다른 사람과 공유.

패키징은 확장 프로그램을 포함하는 .vsix 파일을 만드는 것을 의미합니다. 이 파일은 VS Code에 설치할 수 있습니다. 일부 확장 프로그램은 GitHub 릴리스의 일부로 .vsix 파일을 게시합니다.

확장 프로그램을 패키징하려면 확장 프로그램의 루트 폴더에서 다음 명령을 실행하세요.

vsce package

이 명령은 확장 프로그램의 루트 폴더에 .vsix 파일을 생성합니다. 예를 들어, my-extension-0.0.1.vsix입니다.

사용자가 .vsix 파일을 VS Code에 설치하는 방법

  • VS Code의 확장 프로그램 보기에서

    1. 확장 프로그램 보기를 엽니다.
    2. 보기 및 추가 작업...을 선택합니다.
    3. VSIX에서 설치...을 선택합니다.
  • 명령줄에서

    # if you use VS Code
    code --install-extension my-extension-0.0.1.vsix
    
    # if you use VS Code Insiders
    code-insiders --install-extension my-extension-0.0.1.vsix
    

확장 프로그램 폴더

확장 프로그램을 로드하려면 파일을 VS Code 확장 프로그램 폴더인 .vscode/extensions로 복사해야 합니다. 운영 체제에 따라 이 폴더의 위치가 다릅니다.

  • Windows: %USERPROFILE%\.vscode\extensions
  • macOS: ~/.vscode/extensions
  • Linux: ~/.vscode/extensions

Visual Studio Code 호환성

확장 프로그램을 개발할 때, 확장 프로그램이 호환되는 VS Code 버전을 지정해야 합니다. 이를 위해 package.json 내의 engines.vscode 속성을 사용하세요.

{
  "engines": {
    "vscode": "^1.8.0"
  }
}
  • 1.8.0 (어퍼케이스 없음) 값은 확장 프로그램이 VS Code 1.8.0과만 호환됨을 의미합니다.
  • ^1.8.0 값은 확장 프로그램이 VS Code 1.8.0부터 시작하여 1.8.1, 1.9.0 등을 포함하여 호환됨을 의미합니다.

engines.vscode 속성을 사용하여 확장 프로그램이 의존하는 API를 포함하는 클라이언트에만 설치되도록 할 수 있습니다. 이 메커니즘은 Stable 및 Insiders 릴리스 모두와 잘 작동합니다.

예를 들어, 최신 Stable VS Code 버전이 1.8.0이라고 가정해 봅시다. 버전 1.9.0 개발 중에 새로운 API가 도입되어 Insider 릴리스에서 버전 1.9.0-insider를 통해 사용할 수 있게 되었습니다. 이 API를 활용하는 확장 프로그램 버전을 게시하려면 ^1.9.0 버전 종속성을 표시해야 합니다. 이렇게 하면 새로운 확장 프로그램 버전은 VS Code >=1.9.0(즉, 현재 Insiders 릴리스 사용자)에서만 사용할 수 있습니다. VS Code Stable 사용자는 Stable 릴리스가 1.9.0에 도달해야 업데이트를 받습니다.

고급 사용법

마켓플레이스 통합

Visual Studio 마켓플레이스에서 확장 프로그램의 모양을 사용자 지정할 수 있습니다. 예시는 Go 확장 프로그램을 참조하세요.

마켓플레이스에서 확장 프로그램을 멋지게 보이게 하기 위한 몇 가지 팁입니다.

  • 확장 프로그램의 루트에 README.md 파일을 추가하여 마켓플레이스 페이지에 표시할 콘텐츠를 작성하세요.

    참고

    package.json에 공개 GitHub 저장소를 가리키는 repository 속성이 있는 경우, vsce는 자동으로 이를 감지하고 기본적으로 main 브랜치를 사용하여 상대 링크를 조정합니다. vsce package 또는 vsce publish를 실행할 때 --githubBranch 플래그로 이를 재정의할 수 있습니다. --baseContentUrl--baseImagesUrl 플래그를 사용하여 링크 및 이미지의 기본 URL을 설정할 수도 있습니다.

  • 확장 프로그램 라이선스에 대한 정보를 포함하는 LICENSE 파일을 확장 프로그램 루트에 추가하세요.

  • 확장 프로그램 변경 기록에 대한 정보를 포함하는 CHANGELOG.md 파일을 확장 프로그램 루트에 추가하세요.

  • 확장 프로그램 지원 방법에 대한 정보를 포함하는 SUPPORT.md 파일을 확장 프로그램 루트에 추가하세요.

  • package.jsongalleryBanner.color 속성을 통해 해당 16진수 값을 지정하여 마켓플레이스 페이지의 배너 배경색을 설정하세요.

  • package.jsonicon 속성을 통해 확장 프로그램에 포함된 최소 128x128px PNG 파일에 대한 상대 경로를 지정하여 아이콘을 설정하세요.

자세한 내용은 마켓플레이스 프레젠테이션 팁을 참조하세요.

게시자 확인

브랜드 또는 ID와 관련된 적격 도메인의 소유권을 확인하여 **확인된 게시자**가 될 수 있습니다. 게시자가 확인되면 마켓플레이스는 확장 프로그램 세부 정보에 확인 배지를 추가합니다.

전제 조건

확인된 게시자가 되려면 게시자는 VS 마켓플레이스에 최소 6개월 이상 확장 프로그램을 게시해야 하며, 도메인 등록도 최소 6개월 이상 되어야 합니다. 신청 전에 이러한 기준이 충족될 때까지 기다리십시오.

Verified publisher indicators in VS Code

게시자를 확인하려면

  1. Visual Studio 마켓플레이스 게시자 관리 페이지로 이동하세요: Visual Studio Marketplace publisher management page.

  2. 왼쪽 창에서 확인하려는 게시자를 선택하거나 생성하세요.

  3. 주 창에서 **세부 정보** 탭을 선택하세요.

    Publisher details tab location

  4. **세부 정보 탭**에서 **확인된 도메인** 섹션에 적격 도메인을 입력하세요.

    Publisher details tab with provided domain to verify

    참고: **세부 정보** 탭 제목 옆에 별표(*)가 표시되면 변경 사항이 저장되지 않았음을 나타냅니다. 마찬가지로 **확인** 버튼이 비활성화되어 있습니다.

  5. **저장**을 선택한 다음 **확인**을 선택하세요.

    Saved domain to verify

    대화 상자가 나타나며, 도메인의 DNS 구성에 TXT 레코드를 추가하는 방법에 대한 지침이 제공됩니다.

    TXT record verification

  6. 지침에 따라 도메인의 DNS 구성에 TXT 레코드를 추가하세요.

  7. 대화 상자에서 **확인**을 선택하여 TXT 레코드가 성공적으로 추가되었는지 확인하세요.

    Validation submitted

    TXT 레코드가 유효성이 검사되면 마켓플레이스 팀에서 요청을 검토하고 5영업일 이내에 결과를 알려줄 것입니다. 유효성 검사에는 도메인, 웹사이트 및 확장 프로그램 추적 기록에 대한 필수 구성 요소, 콘텐츠 적격성, 합법성, 신뢰 및 긍정적인 평판 등이 포함되지만 이에 국한되지는 않습니다.

유효성 검사에 통과하면 Visual Studio 마켓플레이스 게시자 관리 페이지에서 게시자 이름 옆에 해당 배지가 표시됩니다.

Verified publisher manage

참고:

  • 게시자 표시 이름 변경 시 확인 배지가 취소됩니다.
  • 게시자가 이용 약관을 위반하거나 위에 언급된 유효성 검사를 위반하면 확인 배지가 취소됩니다.

적격 도메인

적격 도메인은 다음 기준을 충족합니다.

  • DNS 구성 설정을 관리하고 TXT 레코드를 추가할 수 있어야 합니다.
  • 하위 도메인이 아니어야 합니다({subdomain}.github.io, {subdomain}.contoso.com 등).
  • HTTPS 프로토콜을 사용해야 합니다.
  • HEAD 요청에 HTTP 200 상태 코드로 응답할 수 있어야 합니다.

확장 프로그램 가격 책정 레이블

확장 프로그램의 마켓플레이스 페이지에 가격 책정 레이블을 표시하여 무료 또는 무료 평가판임을 나타내도록 선택할 수 있습니다.

가격 책정 레이블을 표시하려면 package.jsonpricing 속성을 추가하세요. 예를 들어.

{
  "pricing": "Free"
}

허용되는 값은 FreeTrial(대소문자 구분)입니다. pricing 속성이 지정되지 않은 경우 기본값은 Free입니다.

참고

가격 책정 레이블이 작동하도록 확장 프로그램을 게시할 때 vsce 버전 >= 2.10.0을 사용해야 합니다.

확장 프로그램 후원

후원을 선택하여 사용자가 여러분의 작업을 지원할 수 있는 방법을 제공할 수 있습니다.

후원 링크를 표시하려면 package.jsonsponsor 속성을 추가하세요. 예를 들어.

"sponsor": {
  "url": "https://github.com/sponsors/nvaccess"
}
참고

후원이 작동하도록 확장 프로그램을 게시할 때 vsce 버전 >= 2.9.1을 사용해야 합니다.

후원 링크는 마켓플레이스 및 VS Code의 확장 프로그램 페이지 확장 프로그램 세부 정보 헤더에 표시됩니다.

Sponsor link in extension details page

이를 통해 사용자가 의존하는 확장 프로그램에 자금을 지원하여 확장 프로그램의 성능, 안정성 및 견고성을 개선할 수 있기를 바랍니다.

.vscodeignore 사용

.vscodeignore 파일을 만들어 확장 프로그램 패키지에 일부 파일을 포함하지 않도록 할 수 있습니다. 이 파일은 한 줄에 하나의 glob 패턴 모음입니다. 예를 들어.

**/*.ts
**/tsconfig.json
!file.ts

실행 시 필요하지 않은 모든 파일을 무시해야 합니다. 예를 들어, 확장 프로그램이 TypeScript로 작성된 경우, 위의 예시와 같이 모든 **/*.ts 파일을 무시해야 합니다.

참고

devDependencies에 나열된 개발 종속성은 자동으로 무시되므로 명시적으로 추가할 필요가 없습니다.

게시 전 단계

확장 프로그램이 패키징될 때마다 호출되는 게시 전 단계를 매니페스트 파일에 추가할 수 있습니다. 예를 들어, 이 단계에서 TypeScript 컴파일러를 호출할 수 있습니다.

{
  "name": "uuid",
  "version": "0.0.1",
  "publisher": "someone",
  "engines": {
    "vscode": "0.10.x"
  },
  "scripts": {
    "vscode:prepublish": "tsc"
  }
}

사전 릴리스 확장 프로그램

사용자는 VS Code 또는 VS Code Insiders에 사전 릴리스 버전의 확장 프로그램을 설치하여 공식 확장 프로그램 릴리스 전에 최신 확장 프로그램 버전을 정기적으로 받을 수 있습니다.

GitHub PR extension pre-release version in the extensions view

사전 릴리스 버전을 게시하려면 vsce package 또는 vsce publish 명령에 --pre-release 플래그를 전달하세요.

vsce package --pre-release
vsce publish --pre-release

확장 프로그램 버전의 경우 major.minor.patch만 지원하며, semver 사전 릴리스 태그는 **지원되지 않습니다**. 사전 릴리스와 일반 릴리스 간에는 버전이 달라야 합니다. 즉, 1.2.3이 사전 릴리스로 업로드된 경우, 다음 일반 릴리스는 1.2.4와 같이 별개의 버전으로 업로드해야 합니다. 완전한 semver 지원은 향후 제공될 예정입니다.

VS Code는 확장 프로그램을 가장 높은 사용 가능한 버전으로 자동으로 업데이트하므로, 사용자가 사전 릴리스 버전을 선택했고 더 높은 버전의 확장 프로그램 릴리스가 있더라도 사용자는 릴리스 버전으로 업데이트됩니다. 따라서 확장 프로그램은 릴리스 버전에 major.EVEN_NUMBER.patch를, 사전 릴리스 버전에 major.ODD_NUMBER.patch를 사용하는 것이 좋습니다. 예: 릴리스의 경우 0.2.*, 사전 릴리스의 경우 0.3.*.

확장 프로그램 작성자가 사전 릴리스 사용자가 릴리스 버전으로 업데이트되는 것을 원하지 않는 경우, 릴리스 버전을 게시하기 전에 항상 버전을 증가시키고 새 사전 릴리스 버전을 게시하여 사전 릴리스 버전이 항상 더 높도록 하는 것이 좋습니다. 사용자는 릴리스 버전이 더 높으면 해당 버전으로 업데이트되지만, 릴리스 버전보다 높은 버전 번호를 가진 향후 사전 릴리스로 자동 업데이트될 자격은 계속 유지됩니다.

사전 릴리스 확장 프로그램은 VS Code 버전 1.63.0 이후부터 지원되므로, 모든 사전 릴리스 확장 프로그램은 package.jsonengines.vscode 값을 >= 1.63.0으로 설정해야 합니다.

참고

이미 별도의 독립적인 사전 릴리스 확장 프로그램을 가지고 있는 확장 프로그램은 VS Code 팀에 연락하여 기존의 독립적인 확장 프로그램을 자동으로 제거하고 기본 확장 프로그램의 사전 릴리스 버전을 설치하도록 요청해야 합니다.

플랫폼별 확장 프로그램

확장 프로그램의 VSIX 패키지를 VS Code가 실행되는 각 플랫폼(Windows, Linux, macOS)에 대해 게시할 수 있습니다. 이러한 확장 프로그램을 **플랫폼별**이라고 합니다.

버전 1.61.0부터 VS Code는 현재 플랫폼과 일치하는 확장 프로그램 패키지를 찾습니다.

플랫폼별 확장 프로그램은 플랫폼별 라이브러리나 종속성을 가진 확장 프로그램에 유용하며, 플랫폼 패키지에 포함되는 정확한 이진 파일을 제어할 수 있습니다. 일반적인 사용 사례는 **네이티브 Node 모듈** 사용입니다.

플랫폼별 확장 프로그램은 플랫폼별 콘텐츠를 포함하는 별도의 패키지로 게시됩니다. 대상 플랫폼은 --target 플래그를 전달하여 지정할 수 있습니다. 이 플래그를 전달하지 않으면 해당 패키지는 플랫폼별 패키지가 없는 모든 플랫폼의 폴백으로 사용됩니다.

현재 사용 가능한 플랫폼은 다음과 같습니다: win32-x64, win32-arm64, linux-x64, linux-arm64, linux-armhf, alpine-x64, alpine-arm64, darwin-x64, darwin-arm64web.

플랫폼별 확장 프로그램이 브라우저에서 웹 확장 프로그램으로 실행되는 것도 지원하기를 원하면, 게시할 때 web 플랫폼을 **반드시** 대상으로 지정해야 합니다. web 플랫폼은 package.jsonbrowser 진입점을 존중합니다. web에서 지원되지 않는 확장 프로그램 기능을 비활성화하기 위해, 웹 플랫폼용 별도의 package.json을 제공하거나 web에서 작동하지 않는 VSIX의 일부를 제거하는 대신 package.jsonwhen 절을 사용하는 것이 좋습니다.

게시

버전 1.99.0부터 vsce는 VSIX를 패키징하고 게시할 때 대상 플랫폼을 지정할 수 있는 --target 매개변수를 지원합니다.

win32-x64win32-arm64 플랫폼용 VSIX를 게시하는 방법은 다음과 같습니다.

vsce publish --target win32-x64 win32-arm64

또는, 플랫폼별 VSIX를 생성하기 위해 패키징할 때 --target 플래그를 사용할 수도 있습니다. 예를 들어, win32-x64 플랫폼용 VSIX를 패키징한 다음 게시하는 방법입니다.

vsce package --target win32-x64
vsce publish --packagePath PATH_TO_WIN32X64_VSIX

지속적인 통합

여러 플랫폼별 VSIX를 관리하는 것은 부담스러울 수 있으므로, 지속적인 통합 (CI) 도구를 사용하여 확장 프로그램의 빌드 프로세스를 자동화하는 것이 좋습니다. 예를 들어, GitHub Actions를 사용하여 확장 프로그램을 빌드할 수 있습니다. 당사의 플랫폼별 확장 프로그램 샘플은 학습 시작점으로 사용할 수 있습니다. 이 샘플의 워크플로는 모든 지원되는 VS Code 대상으로 네이티브 Node 모듈을 종속성으로 배포하기 위해 플랫폼별 확장 프로그램 지원을 사용하는 일반적인 시나리오를 구현합니다.

다음 단계

자주 묻는 질문

확장 프로그램을 게시하려고 할 때 "허용된 태그 수(30개)를 초과했습니다" 오류가 발생합니다.

Visual Studio 마켓플레이스는 확장 프로그램 패키지에 package.json에 30개 이상의 keywords를 허용하지 않습니다. 이 오류를 방지하려면 키워드/태그 수를 최대 30개로 제한하세요.

확장 프로그램을 게시하려고 할 때 403 Forbidden (또는 401 Unauthorized) 오류가 발생합니다.

PAT(개인 액세스 토큰)를 생성할 때 흔히 저지르는 실수 중 하나는 **조직** 필드 드롭다운에서 **액세스 가능한 모든 조직** 대신 특정 조직을 선택하는 것입니다. 또 다른 가능한 실수는 잘못된 범위입니다. 게시가 작동하려면 권한 부여된 범위(Authorized Scopes)를 Marketplace (Manage)로 설정해야 합니다.

vsce 도구를 사용하여 확장 프로그램을 게시 취소할 수 없습니다.

확장 프로그램 ID 또는 게시자 ID를 변경했을 수 있습니다. Visual Studio 마켓플레이스 게시자 관리 페이지(Visual Studio Marketplace publisher management page)에서 직접 확장 프로그램을 관리할 수도 있습니다. 예를 들어, 업데이트하거나 게시 취소할 수 있습니다.

vsce가 파일 속성을 보존하지 않는 이유는 무엇인가요?

Windows에서 확장 프로그램을 빌드하고 게시할 때, 확장 프로그램 패키지에 포함된 모든 파일은 POSIX 파일 속성, 즉 실행 비트가 누락된다는 점에 유의하세요. 일부 node_modules 종속성은 이러한 속성에 의존하여 제대로 작동합니다. Linux 및 macOS에서 게시하는 것은 예상대로 작동합니다.

지속적인 통합(CI) 빌드에서 게시할 수 있나요?

예, Azure DevOps, GitHub Actions 및 GitLab CI를 구성하여 확장 프로그램을 마켓플레이스에 자동으로 게시하는 방법을 알아보려면 지속적인 통합 주제의 자동 게시 섹션을 참조하세요.

확장 프로그램을 게시하려고 할 때 "오류: 마켓플레이스에 이미 '이름' 확장 프로그램이 존재합니다." 오류가 발생합니다.

마켓플레이스는 모든 확장 프로그램에 대해 확장 프로그램 이름이 고유해야 합니다. 동일한 이름을 가진 확장 프로그램이 마켓플레이스에 이미 존재하는 경우 다음과 같은 오류가 발생합니다.

ERROR The extension 'name' already exists in the Marketplace.

동일한 규칙이 확장 프로그램의 표시 이름에도 적용됩니다.

어떤 패키지 관리자가 지원되나요?

확장 프로그램의 종속성을 관리하기 위해 npm 또는 yarn v1을 사용할 수 있습니다.

VS 마켓플레이스 계정 지원이나 확장 프로그램 게시 지원이 필요합니다.

게시자 및 확장 프로그램 관리(Manage Publishers & Extensions)에 로그인하고 오른쪽 상단의 ‘Microsoft에 문의’ 링크를 클릭하여 VS 마켓플레이스 지원팀에 문의할 수 있습니다.

© . This site is unofficial and not affiliated with Microsoft.