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
は次回にでも。