What is the value proposition of tsup?
- Dominant language
- TypeScript
- Stars
- 11.3k
- Forks
- 275
- PR merge metrics
- No merged PRs in 30d
Description
Hello! I just discovered tsup. However, I am struggling to see the benefit that tsup provides over using esbuild.
From what I gather, tsup's advantages are limited to:
- Invoke `tsc` together with esbuild, emitting type definitions (`*.d.ts`)
- ...But I can just invoke `tsc` manually in my build scripts?
- Support CSS, SASS, etc
- ...But these are limited to features already supported by esbuild, so why not just use esbuild directly?
- Transpile to ES5 using swc
- ...But, if you're going to use swc anyway, why use esbuild at all?
- Zero config
- ...But, in my experience, most projects require some build configuration anyway. Very few projects can get by with _truly_ zero config.
- One _could_ argue that providing "sensible defaults" is the core value of tsup. If so, this should be advertised better--perhaps a comparison between a regular esbuild setup with an equivalent tsup config?
Please understand that I am not trying to attack tsup; I just want to know what core value it provides. The way I see it, tsup is very similar to Vite in that it is a mashup of different tools (esbuild, swc). However, tsup appears to lack a core feature that isn't provided by the underlying tools themselves (as opposed to Vite, which provides hot module replacement). I would be happy to be proved wrong.
Oh, and please put that value proposition statement at the top of the README.
P. S. For reference, [klap](https://github.com/osdevisnot/klap) provides a rundown of its useful features in their README.
Contributor guide
Research direction
Start with the repository README and this issue's comparison of tsup with esbuild, tsc, SWC, and Vite. Determine whether the project has a settled value proposition, then update the README's opening explanation only if that message can be agreed on and supported by the existing features.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- documentation
- Issue type
- Documentation
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100