VSCode Extension を VSIX ファイルでインストール
開発した拡張機能をインストールしたときのメモ。
TypeScript コンパイラのインストール
npm install -g typescriptでインストールします。
「TypeScript で拡張機能開発してるのに入れてなかったんかい!」
って突っ込まれそうですが、デバッグは普通に動いてたからうかつでしたねー(棒)
$ tsc -v
Version 3.3.3
バージョンが返ってくれば OK.
vsce のインストール
vsce(The Visual Studio Code Extension Manager)をインストールします。
command line tool for packaging, publishing and managing VS Code extensions.
vsceで拡張機能のインストールに必要な.vsixファイルの生成や、Market Place への公開ができます。
Azure DevOps で Token を取得
詳細な手順は公式サイトにて。なお Token は一度しか表示されないのでご注意です。 忘れちゃったら再生成で。
publisher の生成
先ほど取得した Token を使用してpublisherを登録します。
まずはvsceから。
$ vsce create-publisher "hoge" ... Token [Tokenをコピペ]
package.json
次に先ほど登録したpublisherをpackage.jsonに追加します。
{ ... "publisher": "hoge" ... }
これで OK.
vsix ファイルの生成
package.jsonがあるフォルダに移動し、vsce packageを叩くと同じ階層に*.vsixファイルが生成されます。
……が!ここで最初にはまった。
ハマりポイント
"問題" があるとコンパイルできない
画像的にはコレ↓

今回の場合、どこからも参照されていないメソッドが存在していたのでERROR Command failed: npm run vscode:prepublishでこけました。
なんとなくハズカシイミス(*ノωノ)
ただ、別に参照していなくてもいいのでは…?と思ってしまう。
vsix ファイルからインストール
GUI でインストール
VSIX からのインストールをクリックし、.vsixファイルを選択すればおk。

コマンドでインストール
code --install-extension xxx.vsix
念のため VSCode を再起動します。これで拡張機能が使える!!
npm install の実行
そう思っていた時期が私にもありました。
なんとこのままだと、コマンドパレット(Ctrl+Shift+P)でコマンド叩いても下記エラーが出てしまいます。

そこで、仕上げにC:\Users\user\.vscode\extensions\Your installed extensionに移動して次のコマンドを実行します。
npm install
引数無しのnpm installは
Install the dependencies in the local node_modules folder.
(中略)
By default, npm install will install all modules listed as dependencies in package.json.
を行っているそうです。これでようやく拡張機能が使えるようになりました。
余談
今回はコマンドの実行ができなかったので気づきましたが、Text Highlight などコマンドを叩かない場合はどうなるんでしょうね。
おそらくきちんとハイライトされないんだとは思いますが…。
vsce publishは次回にでも。