mcpField
T
tanstack-cli

tanstack-cli

github.com/oakoss開発21109 回インストール12 週間前に更新
リポジトリ

tanstack-cli について

tanstack-cliは、TanStackの規約に沿ったJavaScript/TypeScriptパッケージのビルド、バージョン管理、公開を支援します。ViteによるESM/CJS出力と型生成に加え、Conventional Commitsに基づくリリースに対応します。

主な機能

  1. 01Viteライブラリビルド設定
  2. 02ESM/CJSと型宣言の生成
  3. 03外部依存関係の検出
  4. 04Conventional Commitsによるバージョン管理
  5. 05安定版・プレリリースブランチの設定

活用シーン

  1. 01TanStack規約に沿ったJavaScript/TypeScriptライブラリの構築
  2. 02パッケージのデュアルモジュール出力と型宣言の生成
  3. 03コミット履歴に基づくパッケージ公開の自動化

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/oakoss/agent-skills --skill tanstack-cli

インストール後、Claude Code で/tanstack-cliを入力して読み込まれたか確認します。

同梱ファイルreferences/configuration.mdreferences/publishing.md

詳細

TanStack Config

概要

TanStack Config は、最小限の設定で一貫した結果を得ながら、JavaScript/TypeScript パッケージのビルド、バージョン管理、公開を行うための、規約を重視したツールを提供します。ライブラリのビルドには Vite を使用し、ESM/CJS の自動デュアル出力と型生成に加え、Conventional Commits に基づくバージョン管理を用いた公開の自動化を実現します。

使用する場面: TanStack の規約に沿ったライブラリやパッケージをビルドする場合、TanStack のオープンソースプロジェクトに貢献する場合、Vite で ESM/CJS のデュアルライブラリビルドを設定する場合、Conventional Commits を使用してパッケージ公開を自動化する場合。

使用しない場面: アプリケーションのビルド(フレームワーク固有のツールを使用してください)、ライブラリ以外のプロジェクト、pnpm を使用していないプロジェクト、Vite 以外のビルドパイプラインが必要なプロジェクト。

クイックリファレンス

パターンAPI/パッケージ主なポイント
Vite ビルド設定@tanstack/vite-config の tanstackViteConfig()mergeConfig を使って defineConfig とマージします
エントリーポイントentry: './src/index.ts'単一ファイルまたはエントリーファイルの配列
ソースディレクトリsrcDir: './src'宣言ファイルの生成に使用します
CJS 出力cjs: true (default)ESM と併せて .cjs と .d.cts を生成します
外部依存関係externalDeps: [/^@internal\//]package.json から自動検出し、パターンで拡張できます
バンドルする依存関係bundledDeps: ['tiny-invariant']外部化せずにバンドルします
型生成から除外exclude: ['./src/**/*.test.ts']型生成時にスキップするパターン
カスタム tsconfigtsconfigPath: './tsconfig.build.json'ビルドに使うデフォルトの tsconfig を上書きします
宣言ファイルフックbeforeWriteDeclarationFile(path, content)書き込み前に .d.ts の内容を変換します
公開の自動化@tanstack/publish-config の publish()Conventional Commits に基づいてバージョンを管理します
ブランチ設定branchConfigs: { main, beta, alpha }プレリリースおよび安定版のチャンネルを制御します
パッケージ一覧packages: [{ name, packageDir }]モノレポのパッケージ定義
ビルドスクリプトvite build && publint --strict厳格なリンティングを行う標準ビルド

よくある間違い

間違い正しいパターン
package.json に "type": "module" がないESM を優先するビルドでは "type": "module" を設定します
mergeConfig を使わずに defineConfig だけを使うmergeConfig(defineConfig({...}), tanstackViteConfig({...})) を使います
entry または srcDir オプションを忘れるtanstackViteConfig を動作させるには、両方が必要です
package.json に exports フィールドがないtypes を含む import と require の条件を定義します
publish() のプロミスを await しないエラーを報告できるように .then() と .catch() で処理します
pnpm ではなく npm や yarn を使うサポートされているパッケージマネージャーは pnpm のみです
ビルドスクリプトに publint --strict を含めないパッケージの問題を検出するため、vite build の後に publint --strict を追加します
v のプレフィックスなしで tag を設定する手動で付けるバージョンタグは v で始める必要があります(例:v1.0.0)
リリースレベルに対して誤ったコミット種別を使うfix/refactor/perf = パッチ、feat = マイナー、BREAKING CHANGE = メジャー

要件

  • Node.js v18.17+
  • pnpm v8+
  • Git CLI
  • GitHub CLI(GitHub Actions にプリインストールされています)
  • Vite(ビルド設定のピア依存関係)
  • publint(ビルドの検証に推奨)

委任

  • ビルド設定のレビュー:Task エージェントを使って、Vite の設定と package.json のエクスポートを確認します
  • 公開ワークフローの設定:Explore エージェントを使って、CI/CD の統合パターンを確認します
  • パッケージの検証:ビルド後に publint --strict を実行して、パッケージの問題を検出します

参考資料

コメント