layout | parent | title | nav_order | description |
---|---|---|---|---|
default |
Advanced Topics |
Using Proposed API |
3 |
Visual Studio Code에서는, 익스텐션 API의 호환성을 중요하게 생각합니다. API 변경을 피하기 위해 최선을 다하고 있으며 익스텐션 작성자는 게시된 익스텐션이 지속적인 작동을 기대 할 수 있습니다. 그러나 이는 큰 제약이 됩니다: API를 도입하면 더이상 쉽게 변경 할 수 없습니다.
제안된 API는 이러한 문제를 해결 합니다. 제안된 API는 VS Code에서 구현되었지만 안정적인 API처럼 퍼블릭에 노출되지않은 불안정한 API들입니다. 이는 변경 될 수 있으며, 내부 배포에서만 가능하며 그리고 게시된 익스텐션에서는 사용불가합니다. 그럼에도 불구하고 익스텐션 작성자는 새로운 API를 로컬 개발에서 테스트 할 수 있으며 VS Code 팀에게 API를 반복하도록 피드백을 제공 할 수 있습니다. 이를 통해 제안된 API는 안정된 API가 되어 일반적인 경우에도 사용 가능 할 수 있게 됩니다.
로컬 익스텐션 개발에서 제안된 API를 테스트 하기 위한 단계입니다 :
- VS Code의 Insiders릴리즈 사용.
package.json
에"enableProposedApi": true
추가.- 프로젝트 소스 위치에 최신버전의
vscode.proposed.d.ts
복사.
vscode-dts CLI 유틸리티는 개발을 위한 최신 vscode.proposed.d.ts
를 다운로드 할 수 있게 합니다.
다음은 제안된 API를 이용한 예시 입니다: 제안된 API 예시.
> npx vscode-dts dev
Downloading vscode.proposed.d.ts to /Users/username/Code/vscode-docs/vscode.proposed.d.ts
Please set "enableProposedApi": true in package.json.
Read more about proposed API at: https://code.visualstudio.com/api/advanced-topics/using-proposed-api
마스터 브랜치에서, vscode.proposed.d.ts
는 vscode.d.ts
와 항상 호환됩니다. 그러나 @types/vscode
를 사용하여 프로젝트에 vscode.proposed.d.ts
를 더하는 경우, 최신 vscode.proposed.d.ts
는 @types/vscode
의 버전과 호환되지 않을 수 있습니다.
다음을 통해 이 문제를 해결하십시오:
@types/vscode
의 의존성을 제거한 뒤,npx vscode-dts master
를 사용하여microsoft/vscode
마스터 브랜치에서vscode.d.ts
를 다운로드 하십시오.@types/vscode@<version>
와npx vscode-dts dev <version>
를 모두 사용하여microsoft/vscode
의 구형 브랜치에서vscode.proposed.d.ts
를 다운로드 하십시오. API는 최신 버전의 VS Code 개발용에서는 변경 될 수 있음에 주의하십시오.