I don't understand the difference between esbuild and swc.
Realistically they have fairly different goals:
- esbuild’s goal is to be a fast JS/JSX/TS compiler and bundler with a simple plugin system to extend its behavior. It’s expected to largely stop adding scope there.
- SWC’s goal is to be a fast JS/JSX/TS compiler, bundler, and extensible code transformer with broad compatibility with Babel and direct support for AST transformation. It’s also integrated into Deno, in a lower level way than APIs exposed by esbuild, so it’s a fair bit more general purpose (whether that’s intended or not, I don’t know).