tsdownですべての依存を含める方法
Tech
js/ts
状況
vp pack で vscode extension用にバンドルしたい
tsdownでは、npm-packageの開発を想定しているため、デフォルトで依存関係はすべて外部化される*1ため、追加設定が必要
設定方法
すべてをバンドルするための専用フラグは用意されていないため、[deps.alwaysBundle](https://tsdown.dev/options/dependencies#deps-alwaysbundle)で対象パッケージを指定する必要がある。
ただし deps.alwaysBundle は RegExp に対応しているため、個別に列挙する必要はなく、正規表現を利用して一括指定できる。
以下は 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,
},
});