かすみん日記

暇なときに何か喋ります

【vscode】自作拡張機能をパッケージ化する

Visual Studio Codeで自作拡張機能をパッケージ化する方法のメモです。

拡張機能はできた。あとはパッケージ化するだけ。の人が対象です。

パッケージ化ツール vsce のインストール

以下のコマンドでvsceをインストールします。

npm install @vscode/vsce

Note: 以下でインストールできるvsceは最新バージョンがv2.15.0までしかなく、古いものなので注意しましょう(後述の--skip-licenseオプションが未実装だったりする)。

npm install vsce

Note: グローバルにインスコする場合は-gオプションを付ければ可能です。

npm install -g @vscode/vsce

パッケージ化の実施

package.jsonがあるディレクトリに移動して、以下コマンドでパッケージ化できます。

npx vsce package

場合によってはいくつか警告(質問)が出ますが、yと回答すればスルーできます。

% npx vsce package
 WARNING  A 'repository' field is missing from the 'package.json' manifest file.
Use --allow-missing-repository to bypass.
Do you want to continue? [y/N] y
 WARNING  LICENSE, LICENSE.md, or LICENSE.txt not found
Do you want to continue? [y/N] y

同じディレクトリに拡張子がvsixのファイルが生成されれば成功です。

vsceのおすすめオプション

おすすめオプション付きコマンドは以下です。

npx vsce package --allow-missing-repository --skip-license -o _releases/
  • --allow-missing-repository: package.jsonリポジトリの設定ないけどええんか?の確認をスキップする(自動y回答)。
  • --skip-license : ライセンスのファイルないけどええんか?の確認をスキップする(自動y回答)。
  • -o <dir_name>: vsixを出力するフォルダを指定します。

余談:上記コマンドを覚えられない人

上記のコマンドを覚えられない人には、以下の選択肢があります。

  • この記事をブックマークして見返す
  • メモ.txtファイルを作成して上記コマンドを貼り付けて保存して見返す
  • package.jsonscriptsフィールドにパッケージ化のタスクを登録する

3つ目の方法は以下のようにします。

package.jsonに以下を追加する。

  "scripts": {
    "package": "vsce package --allow-missing-repository --skip-license -o _releases/"
  },

パッケージ化を実施したいときは、以下のコマンドを実行する。

npm run package

上記コマンドで登録したタスクが実行できます。

タスク実行するためのnpm runコマンドすら覚えられない人は、左腕に刺青を入れましょう。

以上。

参考

github.com