νμ μ€ν¬λ¦½νΈλ‘ λΉμ£ΌμΌ μ€νλμ€ νμ₯μ μμ±ν μ€λΉλ₯Ό νκ³ , μμ±λ νμμ κ²μνλ λ΄μ©μ λν 리뷰μ λλ€.
λΉμ£ΌμΌ μ€νλμ€ μ½λμ νμμ λν μ 보λ Extension API νμ΄μ§μμ μ 곡νκ³ μμ΅λλ€.
μ€λΉ
Your First Extension: Visual Studio Code νμ΄μ§μμ νμ μ€ν¬λ¦½νΈλ‘ νμ₯μ μμ±νλ λ°©λ²μ μλ €μ€λλ€.
yoman ν¨ν€μ§μ VS Code Extension Generator ν¨ν€μ§λ₯Ό μ¬μ©ν΄μ λΆνΈμ€νΈλ© μ½λλ₯Ό μ»μ μ μμ΅λλ€.
μμ‘΄ ν¨ν€μ§ μ€μΉ
$ npm install -g yo generator-code # yoman ν¨ν€μ§μ vs code extension generator ν¨ν€μ§λ₯Ό μ μμ μ€μΉν©λλ€.
νλ‘μ νΈ μ΄κΈ°ν
$ yo code # νλ‘μ νΈλ₯Ό μ΄κΈ°ννκΈ° μν μ 보λ₯Ό μ
λ ₯λ°λ λ΄μ©μ΄ μΆλ ₯λ©λλ€. (μλ λͺ©λ‘μ νμΈνμΈμ.)
- What type of extension do you want to create?
- New Extension (TypeScript) π μ ν
- New Extension (JavaScript)
- New Color Theme
- New Language Support
- New Code Snippets
- New Keymap
- New Extension Pack
- New Language Pack (Localization)
- New Web Extension (TypeScript)
- New Notebook Renderer (TypeScript)
- Whatβs the name of your extension? νμ₯ μ΄λ¦ μ λ ₯
- Whatβs the identifier of your extension? νμ₯ μλ³μ μ λ ₯
- Whatβs the description of your extension? μ€λͺ μ μ λ ₯
- Initialize a git repository? git μ μ₯μ μ΄κΈ°ν N λλ git μ μ₯μ URI
- Bundle the source code with webpack? webpackμ μ¬μ©ν΄μ λ²λ€λ§ Y
- Which package manager to use?
- npm π μ ν
- yarn
- pnpm
- Do you want to open the new folder with Visual Studio Code?
- Open with
code
- Skip
- Open with
νλ‘μ νΈ μ 보λ₯Ό λͺ¨λ μ λ ₯νλ©΄ νμ₯μ μλ³μμ ν΄λΉνλ λλ ν°λ¦¬κ° μμ±λκ³ , νμ μ€ν¬λ¦½νΈλ‘ λΉμ£ΌμΌ μ€νλμ€ μ½λ νμ₯μ μμ±ν μ μλ νκ²½μ΄ μ€λΉλ©λλ€.
μ€λΉλ νλ‘μ νΈμ package.json νμΌμ 보면, 2. μμ μ
λ ₯ν λ΄μ©μ΄ displayName
μΌλ‘ μ¬μ©λκ³ , 3. μμ μ
λ ₯ν λ΄μ©μ΄ name
μΌλ‘ μ¬μ©λκ³ , 4. μμ μ
λ ₯ν λ΄μ©μ΄ description
μΌλ‘ μ¬μ©λλ κ²μ νμΈν μ μμ΅λλ€.
μ΄μ , λΉμ£ΌμΌ μ€νλμ€ μ½λ νμμ μμ±ν μ€λΉλ₯Ό λ§μ³€μ΅λλ€.
μνλ κΈ°λ₯μ ꡬννκ³ , λΉμ£ΌμΌ μ€νλμ€ λ§μΌνλ μ΄μ€μ κ²μνλ©΄ νΉμλ λΉμ·ν κΈ°λ₯μ΄ νμνμ λΆλ€μ΄ μ¬μ©ν μ μμ΅λλ€.
κ²μ
Publishing Extension: Visual Studio Code νμ΄μ§μμ μμ±ν νμ₯μ λΉμ£ΌμΌ μ€νλμ€ λ§μΌνλ μ΄μ€μ κ²μνλ λ°©λ²μ μ€λͺ ν©λλ€.
λΉμ£ΌμΌ μ€νλμ€ λ§μΌνλ μ΄μ€μ μ¬μΈμΈνκ³ , λΉμ£ΌμΌ μ€νλμ€ λ§μΌνλ μ΄μ€ κ΄λ¦¬ νμ΄μ§μμ κ²μμ(Publisher)λ₯Ό μμ±ν΄μΌ ν©λλ€.
λ‘컬 κ°λ°νκ²½μμ κ²μνκΈ° μν΄μ, vsce λꡬλ₯Ό μ¬μ©ν©λλ€.
λΉμ£ΌμΌ μ€νλμ€ λ§μΌνλ μ΄μ€λ μ μ Έ λ°λΈμ΅μ€ λ§μΌνλ μ΄μ€ μλΉμ€λ₯Ό μ¬μ©νλ―λ‘, μ μ Έ λ°λΈμ΅μ€ κ³μ μ μμ±ν΄μΌ ν©λλ€.
μ μ Έ λ°λΈμ΅μ€ κ³μ μμ±κ³Ό κ°μΈ μ‘μΈμ€ ν ν° (PAT, Personal Access Token)μ μμ±νλ λ°©λ²μ Publishing Extension: Visual Studio Code#Get a Personal Access Token νμ΄μ§μμ μ€λͺ νκ³ μμ΅λλ€.
λΉμ£ΌμΌ μ€νλμ€ λ§μΌνλ μ΄μ€μ κ²μμ μμκ³Ό μ μ Έ λ°λΈμ΅μ€μ μ‘μΈμ€ ν ν°μ μμ±νμΌλ©΄, μ΄μ κ²μν μ€λΉλ₯Ό λ§μ³€μ΅λλ€.
κ²μμ νμΈ μ¬ν
Publishing Extension: Visual Studio Code#Publishing extensions νμ΄μ§μμ vsce λκ΅¬λ‘ κ²μν λ, νμΈνλ μ¬νμ μ€λͺ νκ³ μμ΅λλ€.
- μ¬μ©νλ μ΄λ―Έμ§ νμΌμ URI λ
HTTPS
λ₯Ό μ¬μ©ν΄μΌ ν©λλ€. - svg νμΌμ μ λ’°νλ μ 곡μκ° μλλ©΄ μ¬μ©νμ§ μλ κ²μ κΆμ₯ν©λλ€.
package.json νμΌμ μλ νλͺ©μ΄ μ‘΄μ¬νλ νμΈν©λλ€.
- publisher
- version
κ²μμ μλ³μ
νλ‘μ νΈμ package.json νμΌμ μ΄κ³ , publisher νλͺ©μ μΆκ°ν©λλ€.
{
// ... μλ΅
"publisher": "<λΉμ£ΌμΌ μ€νλμ€ λ§μΌνλ μ΄μ€ κ²μμ μλ³μ>"
// ... μλ΅
}
λ²λ€λ§ νμΈ
κ²μμ μ λ¬Έμ μμ΄ λ²λ€μ΄ μμ±λλμ§ νμΈν©λλ€.
$ npm run vscode:prepublish
vsce λꡬ μ€μΉ
$ npm install -g vsce
vsce λ‘κ·ΈμΈ
λμΌν νκ²½μμ κ²μλ₯Ό μλνλ μ€μ΄λ©΄ μ΅μ΄ νλ²λ§ vsce λ‘κ·ΈμΈμ μ§ννμλ©΄ λ©λλ€.
$ vsce login <λΉμ£ΌμΌ μ€νλμ€ λ§μΌνλ μ΄μ€ κ²μμ μλ³μ>
κ°μΈ μ‘μΈμ€ ν ν°(PAT, Personal Access Token) μ λ ₯μ κΈ°λ€λ¦¬λ ν둬ννΈκ° μΆλ ₯λλ©΄ μ μ Έ λ°λΈμ΅μ€μμ μμ±ν κ°μΈ μ‘μΈμ€ ν ν°(PAT, Personal Access Token)μ μ λ ₯ν©λλ€.
μλ λͺ λ ΉμΌλ‘ μ μμ μΌλ‘ λ‘κ·ΈμΈμ΄ λμλμ§ νμΈν μ μμ΅λλ€.
$ vsce ls-publishers # μ μμ μΌλ‘ λ‘κ·ΈμΈλ κ²½μ° κ²μμ λͺ©λ‘μ΄ μΆλ ₯λ©λλ€.
κ²μ
μλ λͺ λ ΉμΌλ‘ λ²λ€λ§νκ³ , λΉμ£ΌμΌ μ€νλμ€ λ§μΌνλ μ΄μ€μ κ²μν©λλ€.
$ vsce publish
κ²μλ νμμ νμΈ ν λ°λ‘ 곡κ°λ©λλ€.
λ¬Έμ ν΄κ²°
vsce publish
λͺ
λ Ήμ νμ¬ μμ
μ€μΈ νλ‘μ νΈκ° κΉ μ μ₯μμΈ κ²½μ° κΈ°λ³Έμ μΌλ‘ κΉ νκ·Έλ₯Ό μμ±ν©λλ€.
λ°λΌμ, νμ¬ μ μ₯μμ μμ±νλ €λ νκ·Έκ° μμΌλ©΄ κ²μκ° μ€ν¨ν©λλ€.
μμλλ μ€ν¨ λ©μμ§λ μλμ κ°μ΅λλ€.
Error: Invalid URL
Error: Process completed with exit code 1.
μ΄ κ²½μ° vsce publish
λͺ
λ Ήμ μ΅μ
μ μΆκ°ν©λλ€.
$ vsce publish --no-git-tag-version --no-update-package-json
--no-git-tag-version
: κΉ νκ·Έλ₯Ό μμ±νμ§ μμ΅λλ€.--no-update-package-json
: package.json νμΌμ λ³κ²½νμ§ μμ΅λλ€.
λ§μΉ¨
μ΄μ μνλ κΈ°λ₯μ΄ ν¬ν¨λ νμ₯μ μμ±νκ³ κ²μν μ μμ΅λλ€.