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

확장 프로그램 매니페스트

모든 Visual Studio Code 확장 프로그램은 확장 프로그램 디렉토리 구조의 루트에 매니페스트 파일 package.json이 필요합니다.

필드

이름 필수 유형 세부 정보
이름 Y 문자열 확장 프로그램의 이름 - 모두 소문자여야 하며 공백이 없어야 합니다.
이름은 마켓플레이스에서 고유해야 합니다.
version Y 문자열 SemVer 호환 버전입니다.
publisher Y 문자열 게시자 식별자
engines Y 객체 확장 프로그램이 호환되는 VS Code 버전에 해당하는 vscode 키를 최소한 포함하는 객체입니다. *일 수 없습니다. 예: ^0.10.50.10.5의 최소 VS Code 버전과의 호환성을 나타냅니다.
license 문자열 npm 문서를 참조하십시오. 확장 프로그램의 루트에 LICENSE 파일이 있는 경우 license의 값은 "SEE LICENSE IN <filename>"이어야 합니다.
displayName 문자열 마켓플레이스에서 사용되는 확장 프로그램의 표시 이름입니다.
표시 이름은 마켓플레이스에서 고유해야 합니다.
설명 문자열 확장 프로그램이 무엇인지, 그리고 무엇을 하는지에 대한 간략한 설명입니다.
categories string[] 확장 프로그램에 사용할 카테고리입니다. 허용되는 값: [프로그래밍 언어, 스니펫, 린터, 테마, 디버거, 포맷터, 키맵, SCM 공급자, 기타, 확장 프로그램 팩, 언어 팩, 데이터 과학, 기계 학습, 시각화, 노트북, 교육, 테스트]
keywords 배열 확장 프로그램을 쉽게 찾을 수 있도록 키워드 배열입니다. 이들은 마켓플레이스의 다른 확장 프로그램 태그와 함께 포함됩니다. 이 목록은 현재 30개의 키워드로 제한됩니다.
galleryBanner 객체 아이콘에 맞게 마켓플레이스 헤더를 서식 지정하는 데 도움이 됩니다. 아래에서 자세한 내용을 참조하십시오.
preview boolean 확장 프로그램을 마켓플레이스에서 미리 보기로 플래그 지정합니다.
main 문자열 확장 프로그램의 진입점입니다.
browser 문자열 웹 확장 프로그램의 진입점입니다.
contributes 객체 확장 프로그램의 기여를 설명하는 객체입니다.
activationEvents 배열 이 확장 프로그램의 활성화 이벤트 배열입니다.
badges 배열 마켓플레이스의 확장 프로그램 페이지 사이드바에 표시할 승인된 배지의 배열입니다. 각 배지는 배지 이미지 URL을 위한 url, 배지를 클릭할 때 사용자가 따를 링크를 위한 href, 그리고 description의 세 가지 속성을 포함하는 객체입니다.
markdown 문자열 마켓플레이스에서 사용되는 Markdown 렌더링 엔진을 제어합니다. github(기본값) 또는 standard입니다.
qna marketplace(기본값), string, false 마켓플레이스의 Q & A 링크를 제어합니다. 기본 마켓플레이스 Q & A 사이트를 활성화하려면 marketplace로 설정합니다. 사용자 지정 Q & A 사이트의 URL을 제공하려면 문자열로 설정합니다. Q & A를 완전히 비활성화하려면 false로 설정합니다.
sponsor 객체 사용자가 확장 프로그램을 후원할 수 있는 위치를 지정합니다. 이는 사용자가 확장 프로그램을 후원할 수 있는 페이지로 연결되는 단일 속성 url을 가진 객체입니다.
dependencies 객체 확장 프로그램이 필요로 하는 모든 런타임 Node.js 종속성입니다. npm의 dependencies와 정확히 동일합니다.
devDependencies 객체 확장 프로그램이 필요로 하는 모든 개발 Node.js 종속성입니다. npm의 devDependencies와 정확히 동일합니다.
extensionPack 배열 함께 설치할 수 있는 확장 프로그램 ID의 배열입니다. 확장 프로그램의 ID는 항상 ${publisher}.${name}입니다. 예: vscode.csharp.
extensionDependencies 배열 이 확장 프로그램이 종속되는 확장 프로그램 ID의 배열입니다. 확장 프로그램의 ID는 항상 ${publisher}.${name}입니다. 예: vscode.csharp.
extensionKind 배열 확장 프로그램이 원격 구성에서 어디에서 실행되어야 하는지를 나타내는 배열입니다. 값은 ui(로컬에서 실행), workspace(원격 머신에서 실행) 또는 둘 다이며, 순서가 우선 순위를 설정합니다. 예: [ui, workspace]는 확장 프로그램이 둘 다 위치에서 실행될 수 있지만 로컬 머신에서 실행하는 것을 선호함을 나타냅니다. 자세한 내용은 여기를 참조하십시오.
scripts 객체 npm의 scripts와 정확히 동일하지만 vscode:prepublish 또는 vscode:uninstall과 같은 VS Code 관련 추가 필드가 있습니다.
icon 문자열 최소 128x128 픽셀(Retina 화면의 경우 256x256)의 아이콘 경로입니다.
pricing 문자열 확장 프로그램의 가격 정보입니다. 허용되는 값: Free, Trial. 기본값: Free. 자세한 내용은 여기를 참조하십시오.
capabilities 객체 제한된 작업 공간에서의 확장 프로그램의 기능을 설명하는 객체: untrustedWorkspaces, virtualWorkspaces.

npm의 package.json 참조도 확인하십시오: https://docs.npmjs.com/cli/v7/configuring-npm/package-json.

다음은 완전한 package.json입니다.

{
  "name": "wordcount",
  "displayName": "Word Count",
  "version": "0.1.0",
  "publisher": "ms-vscode",
  "description": "Markdown Word Count Example - reports out the number of words in a Markdown file.",
  "author": {
    "name": "sean"
  },
  "categories": ["Other"],
  "icon": "images/icon.png",
  "galleryBanner": {
    "color": "#C80000",
    "theme": "dark"
  },
  "pricing": "Free",
  "activationEvents": ["onLanguage:markdown"],
  "engines": {
    "vscode": "^1.0.0"
  },
  "main": "./out/extension",
  "scripts": {
    "vscode:prepublish": "node ./node_modules/vscode/bin/compile",
    "compile": "node ./node_modules/vscode/bin/compile -watch -p ./"
  },
  "devDependencies": {
    "@types/vscode": "^0.10.x",
    "typescript": "^1.6.2"
  },
  "license": "SEE LICENSE IN LICENSE.txt",
  "bugs": {
    "url": "https://github.com/microsoft/vscode-wordcount/issues",
    "email": "sean@contoso.com"
  },
  "repository": {
    "type": "git",
    "url": "https://github.com/microsoft/vscode-wordcount.git"
  },
  "homepage": "https://github.com/microsoft/vscode-wordcount/blob/main/README.md"
}

마켓플레이스 프레젠테이션 팁

VS Code 마켓플레이스에 표시될 때 확장 프로그램을 멋지게 보이게 하는 몇 가지 팁과 권장 사항입니다.

항상 최신 vsce를 사용하십시오. npm install -g @vscode/vsce를 사용하여 최신 버전을 확보하십시오.

확장 프로그램의 루트 폴더에 README.md Markdown 파일을 포함하면 확장 프로그램 세부 정보(마켓플레이스)의 본문에 내용이 포함됩니다. README.md에서 상대 경로 이미지 링크를 제공할 수 있습니다.

몇 가지 예시입니다.

  1. 단어 수
  2. MD 도구

좋은 표시 이름과 설명을 제공하십시오. 이는 마켓플레이스와 제품 디스플레이에 중요합니다. 이러한 문자열은 VS Code에서 텍스트 검색에도 사용되며 관련 키워드를 사용하는 것이 큰 도움이 될 것입니다.

    "displayName": "Word Count",
    "description": "Markdown Word Count Example - reports out the number of words in a Markdown file.",

아이콘과 대비되는 배너 색상은 마켓플레이스 페이지 헤더에서 멋지게 보입니다. theme 속성은 배너에 사용될 글꼴을 참조합니다 - dark 또는 light.

{
  "icon": "images/icon.png",
  "galleryBanner": {
    "color": "#C80000",
    "theme": "dark"
  }
}

마켓플레이스의 리소스 섹션 아래에 표시되는 몇 가지 선택적 링크(bugs, homepage, repository)를 설정할 수 있습니다.

{
  "license": "SEE LICENSE IN LICENSE.txt",
  "homepage": "https://github.com/microsoft/vscode-wordcount/blob/main/README.md",
  "bugs": {
    "url": "https://github.com/microsoft/vscode-wordcount/issues",
    "email": "sean@contoso.com"
  },
  "repository": {
    "type": "git",
    "url": "https://github.com/microsoft/vscode-wordcount.git"
  }
}
마켓플레이스 리소스 링크 package.json 속성
이슈 bugs:url
저장소 repository:url
홈페이지 homepage
라이선스 license

확장 프로그램에 category를 설정하십시오. 동일한 category의 확장 프로그램은 마켓플레이스에서 함께 그룹화되어 필터링 및 검색을 개선합니다.

참고: 확장 프로그램에 적합한 값만 사용하십시오. 허용되는 값은 [프로그래밍 언어, 스니펫, 린터, 테마, 디버거, 포맷터, 키맵, SCM 공급자, 기타, 확장 프로그램 팩, 언어 팩, 데이터 과학, 기계 학습, 시각화, 노트북, 교육, 테스트]입니다. 구문 강조 표시 및 코드 완성 등 일반적인 언어 기능에는 Programming Languages를 사용하십시오. Language Packs 카테고리는 표시 언어 확장 프로그램(예: 현지화된 불가리아어)을 위해 예약되어 있습니다.

{
  "categories": ["Linters", "Programming Languages", "Other"]
}

승인된 배지

보안상의 이유로 신뢰할 수 있는 서비스의 배지만 허용됩니다.

다음 URL 접두사의 배지를 허용합니다.

  • api.travis-ci.com
  • app.fossa.io
  • badge.buildkite.com
  • badge.fury.io
  • badgen.net
  • badges.frapsoft.com
  • badges.gitter.im
  • cdn.travis-ci.com
  • ci.appveyor.com
  • circleci.com
  • cla.opensource.microsoft.com
  • codacy.com
  • codeclimate.com
  • codecov.io
  • coveralls.io
  • david-dm.org
  • deepscan.io
  • dev.azure.com
  • docs.rs
  • flat.badgen.net
  • github.com (워크플로우에서만)
  • gitlab.com
  • godoc.org
  • goreportcard.com
  • img.shields.io
  • isitmaintained.com
  • marketplace.visualstudio.com
  • nodesecurity.io
  • opencollective.com
  • snyk.io
  • travis-ci.com
  • visualstudio.com
  • vsmarketplacebadges.dev

참고: vsmarketplacebadge.apphb.com 배지를 vsmarketplacebadges.dev 배지로 바꾸십시오.

사용하려는 다른 배지가 있다면, GitHub 이슈를 열어주시면 검토해 드리겠습니다.

확장 프로그램 기여 통합

yo code 생성기는 TextMate 테마, 색상 표시기, 스니펫을 쉽게 패키징하고 새 확장 프로그램을 만드는 데 도움이 됩니다. 생성기가 실행되면 각 옵션에 대해 완전한 독립형 확장 프로그램 패키지를 생성합니다. 그러나 여러 기여를 통합하는 단일 확장 프로그램을 갖는 것이 더 편리한 경우가 많습니다. 예를 들어 새 언어 지원을 추가하는 경우 언어 정의(색상 표시 포함)와 스니펫, 심지어 디버깅 지원까지 사용자에게 제공하고 싶을 것입니다.

확장 프로그램 기여를 통합하려면 기존 확장 프로그램 매니페스트 package.json을 편집하고 새 기여 및 관련 파일을 추가합니다.

아래는 LaTex 언어 정의(언어 식별자 및 파일 확장자), 색상 표시(grammars), 스니펫을 포함하는 확장 프로그램 매니페스트입니다.

{
  "name": "language-latex",
  "description": "LaTex Language Support",
  "version": "0.0.1",
  "publisher": "someone",
  "engines": {
    "vscode": "0.10.x"
  },
  "categories": ["Programming Languages", "Snippets"],
  "contributes": {
    "languages": [
      {
        "id": "latex",
        "aliases": ["LaTeX", "latex"],
        "extensions": [".tex"]
      }
    ],
    "grammars": [
      {
        "language": "latex",
        "scopeName": "text.tex.latex",
        "path": "./syntaxes/latex.tmLanguage.json"
      }
    ],
    "snippets": [
      {
        "language": "latex",
        "path": "./snippets/snippets.json"
      }
    ]
  }
}

확장 프로그램 매니페스트 categories 속성에 이제 Programming LanguagesSnippets가 모두 포함되어 마켓플레이스에서 쉽게 검색하고 필터링할 수 있음을 알 수 있습니다.

팁: 병합된 기여가 동일한 식별자를 사용하고 있는지 확인하십시오. 위의 예에서 세 가지 기여 모두 "latex"를 언어 식별자로 사용합니다. 이를 통해 VS Code는 색상 표시기(grammars)와 스니펫이 LaTeX 언어용이며 LaTeX 파일을 편집할 때 활성화된다는 것을 알 수 있습니다.

확장 팩

별도의 확장 프로그램을 확장 프로그램 팩으로 묶을 수 있습니다. 확장 프로그램 팩은 함께 설치될 확장 프로그램 세트입니다. 이를 통해 즐겨 사용하는 확장 프로그램을 다른 사용자와 쉽게 공유하거나 PHP 개발과 같은 특정 시나리오를 위한 확장 프로그램 세트를 만들어 PHP 개발자가 VS Code를 빠르게 시작하도록 도울 수 있습니다.

확장 프로그램 팩은 package.json 파일의 extensionPack 속성을 사용하여 다른 확장 프로그램을 묶습니다.

예를 들어, 디버거와 언어 서비스를 포함하는 PHP 확장 프로그램 팩은 다음과 같습니다.

{
  "extensionPack": ["xdebug.php-debug", "zobo.php-intellisense"]
}

확장 프로그램 팩을 설치하면 VS Code는 확장 프로그램 종속성도 설치합니다.

확장 프로그램 팩은 Extension Packs 마켓플레이스 카테고리로 분류되어야 합니다.

{
  "categories": ["Extension Packs"]
}

확장 프로그램 팩을 만들려면 yo code Yeoman 생성기를 사용하고 New Extension Pack 옵션을 선택하십시오. 현재 VS Code 인스턴스에 설치된 확장 프로그램 세트로 팩을 시드하는 옵션이 있습니다. 이 방식으로 좋아하는 확장 프로그램으로 확장 프로그램 팩을 쉽게 만들고 마켓플레이스에 게시하여 다른 사람들과 공유할 수 있습니다.

확장 프로그램 팩은 번들링된 확장 프로그램과 기능적 종속성이 없어야 하며, 번들링된 확장 프로그램은 팩과 독립적으로 관리할 수 있어야 합니다. 확장 프로그램이 다른 확장 프로그램에 종속되는 경우 해당 종속성은 extensionDependencies 속성을 사용하여 선언해야 합니다.

확장 프로그램 제거 훅

확장 프로그램이 VS Code에서 제거될 때 정리해야 할 사항이 있는 경우, 확장 프로그램의 package.json의 scripts 섹션 아래에 있는 제거 훅 vscode:uninstallnode 스크립트를 등록할 수 있습니다.

{
  "scripts": {
    "vscode:uninstall": "node ./out/src/lifecycle"
  }
}

이 스크립트는 확장 프로그램이 제거된 후 VS Code를 다시 시작할 때(종료 및 시작) VS Code에서 확장 프로그램이 완전히 제거될 때 실행됩니다.

참고: Node.js 스크립트만 지원됩니다.

유용한 Node 모듈

VS Code 확장 프로그램 작성을 돕는 여러 Node.js 모듈을 npmjs에서 사용할 수 있습니다. 이들을 확장 프로그램의 dependencies 섹션에 포함할 수 있습니다.

다음 단계

VS Code 확장성 모델에 대해 자세히 알아보려면 다음 주제를 시도해 보세요.

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