tsdown について
tsdown で TypeScript ライブラリをビルドする開発者向けのワークフロースキルです。ビルド、型宣言、エクスポート、依存関係、tsup からの移行を扱い、現行 API と成果物、パッケージ利用の確認を重視します。
主な機能
- 01ビルド設定と CLI の指針
- 02型宣言とエクスポートの設定指針
- 03依存関係のバンドル制御
- 04プラグイン、CSS、ワークスペースの指針
- 05tsup とバージョン移行の指針
活用シーン
- 01TypeScript ライブラリのビルド設定
- 02生成された型宣言とエクスポートの確認
- 03依存関係の外部化方法の調整
- 04プロジェクトの tsup からの移行
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ dobroslavradosavljevic/ skills --skill tsdownインストール後、Claude Code で/tsdownを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
agents/openai.yamlreferences/config-cli.mddts-exports-deps.mdmigrate-from-tsup.mdplugins-css-workspace.mdsource-map.mdusage-guide.md詳細
tsdown
tsdown に関わる作業(ライブラリのビルド、tsdown.config、dts/exports、依存関係の外部化、watch/unbundle、CSS/プラグイン/ワークスペース、0.22 → 0.23 へのアップグレード、または tsup からの移行)では、このスキルを使用してください。
スナップショット:[email protected](2026-10-01)。バージョンが異なる場合は、source-map.md を参照して更新してください。
ワークフロー
- ローカルの tsdown の状況を確認します。
- パッケージのバージョン(
[email protected]を推奨。スナップショットは 0.23.0)。ツールを実行するために必要な Node のバージョン:^22.18.0 || ^24.11.0 || >=26.0.0(Node 25 は 0.23 でサポート対象外になりました)。 - 設定:
tsdown.config.ts/package.json#tsdown、ピア依存関係(typescript、@tsdown/css、publintなど)。 package.jsonのtype、exports、types、engines.node(ターゲット/dts の自動検出に使用されます)。- tsup から移行するかどうか(
external、entryPoints、bundle: falseなど)。
- パッケージのバージョン(
- 日常的な使い方については、まず usage-guide.md に従ってください。
- バージョンに差異がある場合はドキュメントを更新します。source-map.md から始めてください。
- 詳細については、次を参照してください。
- 設定/CLI/デフォルト値:config-cli.md。
- dts、パッケージの exports、依存関係:dts-exports-deps.md。
- プラグイン、CSS、コピー、ワークスペース、プログラムからの利用:plugins-css-workspace.md。
- tsup からの移行と 0.22 → 0.23 へのアップグレード:migrate-from-tsup.md。
- 現行の API を優先してください:
entry、deps.neverBundle/alwaysBundle/onlyBundle、unbundle、copy、cjsDefault、dts.generator。CJS はメンテナンス用として扱い、新しいライブラリでは ESM のみを推奨します。 bunx tsdown(またはプロジェクトのbuild)で検証し、distとexports/types を確認してから、スモークインポートでパッケージを利用します。
基本的な判断基準
- tsdown は Rolldown + Oxc を基盤とするライブラリバンドラーです。tsup の精神的な後継ですが、アプリ向けのバンドラーではありません。
- デフォルト値は tsup と異なります:
format: 'esm'、clean: true、dts はpackage.jsonの types/exports から自動判定されることが多く、ターゲットはengines.nodeから判定されます。 - 非推奨の
external/noExternalよりdeps.neverBundle/alwaysBundleを優先してください(0.23 でも引き続き使用できますが、両方の形式を設定するとエラーになります)。 - 0.23 では tsup 互換オプション(
bundle、outExtension、publicDir、removeNodeProtocol、injectStyle、inlineOnly、skipNodeModulesBundle、deps.onlyAllowBundle、dts.cjsReexport)が削除されました。これらは型チェックに失敗し、実行時には無視されます。 - 依存関係のデフォルトポリシー:パッケージの dependencies/peers は外部化されます。使用される devDependencies はバンドルされる場合があります。想定と異なる場合は
depsで上書きしてください。 - dts を生成するには
typescriptをインストールしてください。ジェネレーターを選択する場合はdts.generator: 'oxc' | 'tsc' | 'tsgo'のみを使用してください(省略時はisolatedDeclarationsの場合にoxc、TypeScript 7 がインストールされている場合にtsgo、それ以外ではtscが選択されます)。dts.oxc: true/dts.tsgo: trueでは、ジェネレーターを選択できなくなりました。 - 0.23 では
deps.resolveDepSubpathのデフォルトはfalseです。外部のサブパスは記述されたまま維持されます。 build()はハンドルを返します:const { bundles, watch } = await build(...)。@tsdown/css/@tsdown/exeを使用する場合、tsdownとバージョンを一致させる必要があります。- スタブモードはありません。
--watchおよび/またはexports.devExportsを使用してください。 - コード分割は常に有効です。
splitting: falseはありません。 - 0.22 または tsup からアップグレードする場合は、まず 0.22.14 で非推奨警告がゼロの状態で一度ビルドしてから、0.23 に移行してください(
tsdown-migrateは最初の段階で 0.22.14 に固定します)。 - コマンド例では
bun/bunxを優先してください。
検証
リポジトリが提供するコマンドを優先してください。tsdown に関する重要な作業では、該当する項目を確認してください。
bunx tsdown --versionを実行し、CLI の Node エンジン要件を確認します。- クリーンビルドを実行します:
bunx tsdown/bun run build。distのフォーマットと拡張子(.mjs/.cjs/.js)を確認します。 - 型:依存パッケージから
.d.ts/exports.typesを利用するか、tscを実行します。 - デュアルフォーマット:
formatに両方が含まれる場合は、require と import のスモークテストを行います。 exports: trueの設定後:有効になっている場合は publint/attw でpackage.jsonを検証します。- 移行:アップグレード前に 0.22.14 で非推奨警告がゼロであることを確認します。0.23 へのアップグレード後は、削除されたオプションが残っておらず、
attwが引き続き合格することを確認します(デフォルトのプロファイルはesm-onlyになりました)。
実施した確認と実施しなかった確認、および未解決のバージョンに関する前提を報告してください。
コメント
Markdown 対応