Upgrade to Pro — share decks privately, control downloads, hide ads and more …

CLIライブラリ開発を支える技術

 CLIライブラリ開発を支える技術

以下イベントでのLT。
- 開発の工夫を語るLT会 in 神戸!設計、実装、検証 etc.【DevFest Meetup #2】
- https://gdgkwansai.connpass.com/event/405133/

Avatar for Hiroshi TANABE

Hiroshi TANABE

September 15, 2026

More Decks by Hiroshi TANABE

Other Decks in Technology

Transcript

  1. 皆さん高速化大好きですよね 背景 AIのおかげで色んな場面で試行回数が → 増えている 課題 待ち時間をいかに短くして 試行回数を増やせるか → 解決策

    道具を選びを工夫して ループを短くする どういうライブラリ選定をして、スキルをどう安全に使うか、あるいか今後使っていくと良さそ うかも話したい。 2
  2. 個人開発でたどり着いたライブラリ 工程 重視すること 選んだ道具 Build 速さ + 設定の少なさ tsdown Lint

    速さ Oxlint / Biome Format 速さ or 作っているものとの 互換性 Oxfmt / Prettier Test 速さ Vitest 4
  3. 高速なビルド:tsdown TypeScript src/index.ts → tsdown ライブラリ向けのバンドラ ー Rolldown → 高速な実行基盤(コアのバ

    → ンドラー) 配布物 dist/ 少ない設定 よくある処理を自動化 package.jsonを読むだけで、ライブラリ向けの既定値で 動く ESM / CJS / tree shaking / minify / source map / 型定義 詳しい説明はTSKaigi 2026 10秒のビルドを1秒へ:tsdownが切り拓く2026年の TypeScriptライブラリ開発で語られているので省略。 tsdown.dev / rolldown.rs 5
  4. 個人的なバンドラーの遍歴 ~2025年ごろまでRollupベースのunjs/unbuildを利用してました その後Rolldownベースのtsdownへ移行 Bundler esbuild │ │ ┌──────────┴──────────┐ tsup(活発な開発は終了→ tsdownへの移行を推奨)

    Rollup Rolldown │ ┌──────┴──────┐ │ │ │ │ tsdown その他(obuild含む) └── unbuild(活発な開発は終了→ obuild を推奨) メインのバンドラーはRollup, Rolldownが台頭 unbuildからobuildへ変わり、tsdownも開発が盛ん 世はまさに大バンドラー時代 6
  5. FormatとLintも速くする (ご存じのとおり)Oxlint/OxfmtやBiomeは速い 一方でPrettierもキャッシュや高速化の改善が進んでいる 2022年: --cache 2025年: --experimental-cli と @prettier/plugin-oxc (JS、TS向け)

    HUGOのテーマ開発だとPrettierをメインで使っています。Oxfmtも以下のように言ってい る。 Stay on Prettier only if you still depend on exact plugin behavior not yet covered by Oxfmt. 7
  6. AI Skillの活用(n番煎じ) gh skill コマンドで、いろんなSkillを探索・プレビュー・導入できます。 gh skill search typescript gh

    skill search review メリット 既存の知見を導入しやすい 車輪の再発明を減らせる デメリット 何を読み込むか、何を実行させるかを確認する必要がある 公式の星の多さと、実際の安全性や適合性は別物 8
  7. 仕方ないのでskillを自分たちで育てる 既存Skillを 読んでみる → 安全性を検査 → 小さく 取り込む → 今後の課題:

    信頼できるSkillを共有または導入し、育てるにはどうすればよいか あるいはスキルが不要になるのが先か(どこに投資すべきか迷う) レビューで 育てる
  8. 参考資料 自作OSS Build / Lint / Format github.com/htnabe/algolia-uploader tsdown.dev /

    rolldown.rs github.com/htnabe/prettier-plugin-go-template oxc.rs github.com/htnabe/prettier-plugin-hugo-post prettier.io github.com/htnabe/skills biomejs.dev Agent Skills スライド github.com/anthropics/skills marp.app / github.com/marp-team/marp-cli github.com/github/awesome-copilot github.com/openai/skills(deprecated)