evanw/esbuild
Pros
- No boilerplate for transforming/bundling javascript files - just
esbuild something.js --bundle --outfile=/path/to/out.js
and that's it - Has IIFE output option
Cons
- "No boilerplate" doesn't mean its output is correct
- Mostly incorrect for common project, so minor tweakings may be needed
- No supports for:
- modifying AST (which means babel-like plugin system)
- hot module reloading
- These are officially non-goal for esbuild
- No HTML entry point, or regular text file output
- Minifier isn't that good; have to pass into Terser once after esbuild minify
- Doesn't care about preserving comments
swc-project/swc
Pros
- Plugins can play with AST
- Still in beta, but they say it won't gonna change far away
Cons
- Transforming a single file needs lots of
.swcrc
boilerplate - No IIFE output options
- Bundling isn't ready
- No output entries support except javascript
- Does not minify during bundling files
- Sourcemap output is absolute path, not relative to project root
microsoft/TypeScript
Cons
- Why are you using this with hoping fast and sane build results kthx gotta sleep gnight