1. 程式人生 > >VSCode外掛開發

VSCode外掛開發

VSCode外掛開發全攻略(十)打包、釋出、升級

釋出方式
外掛開發完了,如何釋出出去分享給他人呢?主要有3種方法:

方法一:直接把資料夾發給別人,讓別人找到vscode的外掛存放目錄並放進去,然後重啟vscode,一般不推薦;
方法二:打包成vsix外掛,然後傳送給別人安裝,如果你的外掛涉及機密不方便釋出到應用市場,可以嘗試採用這種方式;
方法三:註冊開發者賬號,釋出到官網應用市場,這個釋出和npm一樣是不需要稽核的。
本地打包
無論是本地打包還是釋出到應用市場都需要藉助vsce這個工具。

安裝:

npm i vsce -g
打包成vsix檔案:

vsce package
打包的時候如果沒有設定repository會有提示,所以最好設定一下。

W1678xH212

生成好的vsix檔案不能直接拖入安裝,只能從擴充套件的右上角選擇Install from VSIX安裝:

W956xH688

釋出應用市場
Visual Studio Code的應用市場基於微軟自己的Azure DevOps,外掛的身份驗證、託管和管理都是在這裡。

要釋出到應用市場首先得有應用市場的publisher賬號;
而要有釋出賬號首先得有Azure DevOps組織;
而建立組織之前,首先得建立Azure賬號;
建立Azure賬號首先得有Microsoft賬號;
是不是有點暈,梳理一下:

一個Microsoft賬號可以建立多個Azure組織;
一個組織可以建立多個publisher賬號;
同時一個組織可以建立多個PAT(Personal Access Token,個人訪問令牌);
3.1. 註冊賬號
首先訪問

https://login.live.com/ 登入你的Microsoft賬號,沒有的先註冊一個:

W579xH482

然後訪問: https://aka.ms/SignupAzureDevOps ,如果你從來沒有使用過Azure,那麼會看到如下提示:

W479xH330

點選繼續,預設會建立一個以郵箱字首為名的組織。

3.2. 建立令牌
預設進入組織的主頁後,點選右上角的Security:

W748xH607

點選建立新的個人訪問令牌,這裡特別要注意Organization要選擇all accessible organizations,Scopes要選擇Full access,否則後面釋出會失敗。

W639xH502

建立令牌成功後你需要本地記下來,因為網站是不會幫你儲存的。

3.3. 建立釋出賬號
獲得個人訪問令牌後,使用vsce以下命令建立新的釋出者:

vsce create-publisher your-publisher-name
your-publisher-name必須是字母數字下劃線,這是全網唯一的賬號,然後會依次要求輸入暱稱、郵箱、令牌:

W1200xH294

建立成功後會預設登入這個賬號,接下來你可以直接釋出了,當然,如果你是在其它地方建立的,可以試用vsce login your-publisher-name來登入。

除了用命令之外,你還可以使用網頁版建立釋出賬號:https://marketplace.visualstudio.com/manage

3.4. 釋出
釋出很簡單:

vsce publish
W1092xH254

釋出成功後大概需要過幾分鐘才能在應用市場搜到。過幾分鐘就可以訪問網頁版的外掛主頁:https://marketplace.visualstudio.com/items?itemName=sxei.vscode-plugin-demo

W646xH447

vscode裡面也能搜到了:

W738xH674

3.4.1. 釋出注意事項
README.md檔案預設會顯示在外掛主頁;
README.md中的資源必須全部是HTTPS的,如果是HTTP會發布失敗;
CHANGELOG.md會顯示在變更選項卡;
如果程式碼是放在git倉庫並且設定了repository欄位,釋出前必須先提交git,否則會提示Git working directory not clean;
另外,如前面所說,如果Organization沒有選擇all accessible organizations,或者Scopes沒有選擇Full access,釋出的時候可能會報如下錯誤:

Error: Failed Request: Unauthorized(401) - https://marketplace.visualstudio.com/_apis/gallery
Be sure to use a Personal Access Token which has access to all accessible accounts.
See https://code.visualstudio.com/docs/tools/vscecli#_common-questions for more information.
3.4.2. 增量釋出
版本號:major.minor.patch

如果想讓釋出之後版本號的patch自增,例如:1.0.2 -> 1.0.3,可以這樣:

vsce publish patch
執行這個命令後會自動修改package.json裡面的版本號。同理,vsce publish minor也是可以的。

3.5. 取消釋出
vsce unpublish (publisher name).(extension name)
3.6. 更新
如果修改了外掛程式碼想要重新發布,只需要修改版本號然後重新執行vsce publish即可。

外掛升級
4.1. 釋出到了應用市場
如果釋出到了應用市場,那麼一般來說會自動檢測有沒有新版本,有的話會自動無感知升級,但具體什麼時候會去檢測我還沒有研究過,已經確定的是在擴充套件面板搜尋外掛名字會自動檢測,重啟vscode也會檢測。

4.2. 如果是本地打包
如果是打包成vsix,那麼只能自己實現升級檢測功能呢,通過對比伺服器上某個檔案的版本號,具體我就不細講了。

個人網站:https://haoji.me
github:https://github.com/sxei
部落格園:http://www.cnblogs.com/liuxianan