tsdownですべての依存を含める方法

Tech
js/ts

状況

vp pack で vscode extension用にバンドルしたい

tsdownでは、npm-packageの開発を想定しているため、デフォルトで依存関係はすべて外部化される*1ため、追加設定が必要

設定方法

すべてをバンドルするための専用フラグは用意されていないため、[deps.alwaysBundle](https://tsdown.dev/options/dependencies#deps-alwaysbundle)で対象パッケージを指定する必要がある。
ただし deps.alwaysBundleRegExp に対応しているため、個別に列挙する必要はなく、正規表現を利用して一括指定できる。

以下は vscode extension向けの設定例で、vscode パッケージ以外のすべての依存をバンドル対象としている。

vite.config.ts
import { defineConfig } from "vite-plus";

export default defineConfig({
  pack: {
    sourcemap: true,
    dts: {
      sourcemap: true,
    },
    deps: {
      neverBundle: ["vscode"],
      alwaysBundle: [/.*/],
      onlyBundle: false,
    },
    fixedExtension: false,
  },
});