// the find
egoist/tsup
The simplest and fastest way to bundle your TypeScript libraries.
tsup is a zero-config TypeScript library bundler built on esbuild, aimed at package authors who want CJS/ESM dual output without wrestling with rollup configs. It handles the boring parts: declaration file generation, shims for CJS/ESM interop, tree-shaking, and watch mode. The maintainer has deprecated it in favor of tsdown.
esbuild as the core bundler makes it genuinely fast — rebuilds are near-instant compared to rollup-based alternatives. The dual CJS/ESM output with automatic interop shims saved a lot of library authors from the exports field headache before that was well understood. Configuration surface is small and sensible; most projects need fewer than 10 lines. The test suite is thorough for a bundler tool — snapshot tests cover real build outputs, not just config parsing.
The README leads with a deprecation warning pointing to tsdown — adopting this now means planning a migration before you've shipped anything. CSS support is still marked experimental after years of development, which signals the project ran out of energy before finishing. Declaration file generation leans on a separate tsc pass or api-extractor, so complex generics and module augmentation can produce broken .d.ts output that esbuild can't fix. No active maintenance means accumulating esbuild version drift and unpatched edge cases in the CJS splitting plugin.