日々是好日

プログラミングについてのあれこれ、ムダ知識など

VSCode Extension を VSIX ファイルでインストール

開発した拡張機能をインストールしたときのメモ。

TypeScript コンパイラのインストール

npm install -g typescriptでインストールします。

「TypeScript で拡張機能開発してるのに入れてなかったんかい!」

って突っ込まれそうですが、デバッグは普通に動いてたからうかつでしたねー(棒)

$ tsc -v
Version 3.3.3

バージョンが返ってくれば OK.

html5experts.jp

vsce のインストール

vsce(The Visual Studio Code Extension Manager)をインストールします。

command line tool for packaging, publishing and managing VS Code extensions.

vsce拡張機能のインストールに必要な.vsixファイルの生成や、Market Place への公開ができます。

github.com

Azure DevOps で Token を取得

詳細な手順は公式サイトにて。なお Token は一度しか表示されないのでご注意です。 忘れちゃったら再生成で。

code.visualstudio.com

publisher の生成

先ほど取得した Token を使用してpublisherを登録します。

まずはvsceから。

$ vsce create-publisher "hoge"
...
Token [Tokenをコピペ]

package.json

次に先ほど登録したpublisherpackage.jsonに追加します。

{
    ...
    "publisher": "hoge"
    ...
}

これで OK.

vsix ファイルの生成

package.jsonがあるフォルダに移動し、vsce packageを叩くと同じ階層に*.vsixファイルが生成されます。
……が!ここで最初にはまった。

ハマりポイント

"問題" があるとコンパイルできない

画像的にはコレ↓

f:id:kcpoipoi:20190208200448p:plain

今回の場合、どこからも参照されていないメソッドが存在していたのでERROR Command failed: npm run vscode:prepublishでこけました。
なんとなくハズカシイミス(*ノωノ)

ただ、別に参照していなくてもいいのでは…?と思ってしまう。

vsix ファイルからインストール

GUI でインストール

VSIX からのインストールをクリックし、.vsixファイルを選択すればおk。

f:id:kcpoipoi:20190208200619p:plain:w300

コマンドでインストール

code --install-extension xxx.vsix

念のため VSCode を再起動します。これで拡張機能が使える!!

npm install の実行

そう思っていた時期が私にもありました。
なんとこのままだと、コマンドパレット(Ctrl+Shift+P)でコマンド叩いても下記エラーが出てしまいます。

f:id:kcpoipoi:20190208200737p:plain

そこで、仕上げに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.

を行っているそうです。これでようやく拡張機能が使えるようになりました。

github.com

docs.npmjs.com

余談

今回はコマンドの実行ができなかったので気づきましたが、Text Highlight などコマンドを叩かない場合はどうなるんでしょうね。
おそらくきちんとハイライトされないんだとは思いますが…。

vsce publishは次回にでも。