tsup is a zero-config TypeScript/JavaScript bundler focused on developer speed and sensible defaults. It builds on extremely fast tooling under the hood to deliver near-instant feedback loops even in large monorepos. The design goal is to let you publish modern libraries without hand-crafting long build scripts: point it at an entry file and it emits multiple targets, formats, and type declarations. It handles common library needs out of the box—like generating both ESM and CJS, bundling assets, and preserving or treeshaking dependencies—while staying flexible through minimal flags. Because it embraces convention over configuration, it’s easy to adopt as a drop-in replacement for heavier bundlers in simple packages, yet it scales when you need custom externals, minification, or watch modes. The result is a practical tool that shortens the path from source to npm-ready output, lowering maintenance cost across many packages in a repo.
Features
- Zero-config builds for TS/JS libraries with smart defaults
- Output multiple formats (ESM, CJS, UMD) from a single command
- Type declaration generation for TypeScript projects
- Super-fast incremental rebuilds and watch mode for tight feedback loops
- Easy externals control and tree-shaking for lean bundles
- Built-in minification, source maps, and code splitting where applicable