へっぽこエンジニアの覚え書き

主に、バッチとTeraTermマクロのことについて書きます。

Visual Studio Code の拡張機能を作ったので自分用メモ

Azure DevOpsでアカウントを作る

ScopesはFull Accessを設定する
OrganizationはAll accessible organizationsを設定する
アクセストークン(パスワード?)がとても大事なのでどこかにメモっておく

 

vsceをインストール
npm install -g vsce

Publisherの設定
この途中で、さっきメモしたアクセストークンを聞かれるので以下で入力
vsce create-publisher Publisher名
vsce login Publisher名

Marketplaceに登録するには以下のファイルが必要です。
アイコン
package.json
README.md
LICENSE.md

ライセンスは↓をコピペして同じフォルダに入れておけばOK
[year] と[fullname]を書き換える
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::ここから:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
MIT License

Copyright (c) [year] [fullname]

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::ここまで:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

package.jsonには最低以下の内容を追記する必要があります。
私はアイコンはなくてもいけてしまいましたが・・・。
"publisher": "Publisher名",
"icon": "アイコン画像.png",
アイコンは128X128pixels

f:id:gbsdjpagiefuihzds:20200618144545p:plain

iconsize

https://code.visualstudio.com/api/references/extension-manifest

 

そして公開
以下のコマンドで公開できます。
vsce publish

のですが、すぐに微々たる誤りを見つけてしまい更新しようとvsce publishコマンドを実行しましたが

f:id:gbsdjpagiefuihzds:20200618144758p:plain

というエラーが発生。
検索するとプロキシのエラーとのこと。
私の環境にプロキシは入っていないので全くわからず2日費やしてしまいました。

答えは↓の通り

f:id:gbsdjpagiefuihzds:20200618144933p:plain

publishだけでなくバージョン番号も入れてあげる必要がありました。
つまり
vsce publish 0.0.6
とかやってあげないと、意味不明のエラーになりはまります。

追記
vsce publish 0.0.6
と書きましたが、もっと便利な方法がありましたので書いておきます。
バージョン番号は左からmajor、minor、patchという順番になっており
上の例でいうと、0(major).0(minor).6(patch)となります。
実際にアップデートするときは
vsce publish patch
とすれば、上の例では0.0.7に勝手にバージョンアップしてくれます。
便利です。

色々な方がvsce publishを紹介されているのですが、後ろにverNoまで付けて紹介されている方がおられなかったので大ハマリしました。
バージョンは前回と同じだとエラーになるので、package.json内のversionに合わせてください。

ついでに
Manage Publishers & Extensionsページに手動アップロードするときも↓の【+ New extension】を押してバージョンアップすると

f:id:gbsdjpagiefuihzds:20200618145219p:plain

以下のようなエラーになります。

f:id:gbsdjpagiefuihzds:20200618145508p:plain

already exists なのでバージョンが誤ってるのか?とこちらも半日ほど悩みました。

ちなみに手動バージョンアップの正解の方法ですが、

f:id:gbsdjpagiefuihzds:20200618152523p:plain

ここを選択してUpdateを選択する必要があります。
どちらも、エラーメッセージが不親切です。
私のようにハマった方のお役に立てれば幸いです。