Esbuild Alternatives
-
Snowpack
WASM-powered frontend build tool. Fast, lightweight, unbundled ESM. ✌️
-
swc
swc is a super-fast compiler written in rust; producing widely-supported javascript from modern standards and typescript.
-
Scout
Get performance insights in less than 4 minutes. Scout APM uses tracing logic that ties bottlenecks to source code so you know the exact line of code causing performance issues and can get back to building a great product faster.
-
serverless-stack
Serverless Stack (SST) is a framework that makes it easy to build serverless apps.
-
TypeScript-Website
The Website and web infrastructure for learning TypeScript
-
deno
A secure JavaScript and TypeScript runtime
-
webpack
A bundler for javascript and friends. Packs many modules into a few bundled assets. Code Splitting allows for loading parts of the application on demand. Through "loaders", modules can be CommonJs, AMD, ES6 modules, CSS, Images, JSON, Coffeescript, LESS, ... and your custom stuff.
-
Hugo
The world’s fastest framework for building websites.
-
terraform
Terraform enables you to safely and predictably create, change, and improve infrastructure. It is an open source tool that codifies APIs into declarative configuration files that can be shared amongst team members, treated as code, edited, reviewed, and versioned.
-
PostCSS
Transforming styles with JS plugins
-
vite
Next generation frontend tooling. It's fast!
-
ESLint
Find and fix problems in your JavaScript code.
-
sucrase
Super-fast alternative to Babel for when you can target modern JS runtimes
-
trojan-go
Go实现的Trojan代理,支持多路复用/路由功能/CDN中转/Shadowsocks混淆插件,多平台,无依赖。A Trojan proxy written in Go. An unidentifiable mechanism that helps you bypass GFW. https://p4gefau1t.github.io/trojan-go/
-
ali
Generate HTTP load and plot the results in real-time
-
esm.sh
A fast, global content delivery network for ES Modules.
-
minification-benchmarks
🏃♂️🏃♀️🏃 JS minification benchmarks: babel-minify, esbuild, terser, uglify-js, swc, google closure compiler
-
homepage
Seed Homepage (by seed-run)
-
micro-editor
A modern and intuitive terminal-based text editor
-
Hey
HTTP load generator, ApacheBench (ab) replacement, formerly known as rakyll/boom
-
vega
A visualization grammar.
Posts
-
Deno v1.8 – support for WebGPU, private modules, Intl, and much more
Maybe esbuild can help? It's a go-based bundler that does typescript, es6, etc. and a lot more. https://github.com/evanw/esbuild It's still pretty well integrated into the npm world and distributed as a node package though, so there might be some issues.
-
Launch HN: SST (YC W21) – A live development environment for AWS Lambda
So the `sst start` command fires up a local environment but it doesn't deploy your functions. Instead it'll run it locally when it gets invoked.
But when you `sst deploy` it, we'll package your functions. To do this we use esbuild (https://esbuild.github.io), it's like Webpack but 10x faster. It'll generated a single js file that should be fairly small and you shouldn't have to use Layers.
However, this isn't bullet proof. There are some dependencies that are not compatible with esbuild/webpack, and you'll end up having to zip them up as a directory. That's something we are going to work to improve in the future.
-
esbuild go fast
If you've heard of esbuild you've probably seen this picture.
-
Switching from C# to Go for backend development
Have you seen esbuild? https://github.com/evanw/esbuild We're looking into using it with snowpack.dev or vitejs to bring our TS build times down too.
- A tangent about optimizing JavaScript
-
AWS CDK - One-Step S3 Websites with esbuild
There's a lot to like about esbuild. It's written in golang and is very fast. It's a newer project, but it's gaining features like crazy. It's not quite as mature as webpack so it's still missing a few things like hot module reload, but workarounds exist. The docs are pretty good, but there's a lot of ground to cover for a tool like this. One thing that's easy to overlook is esbuild ships with a local dev server. No need to bring your own!
- Esbuild – An extremely fast JavaScript bundler
-
Announcing Vite 2.0
Vite (French word for "fast", pronounced /vit/) is a new kind of build tool for frontend web development. Think a pre-configured dev server + bundler combo, but leaner and faster. It leverages browser's native ES modules support and tools written in compile-to-native languages like esbuild to deliver a snappy and modern development experience.
-
Why Is Esbuild Fast?
Esbuild looks amazing. It seems to have been written almost exclusively by one guy (evanw) during 2020. Just the main JS parser file [0] is 12k lines. According to the Github stats he has committed 280k lines, that's almost 1000 lines per day every day since he started. Amazingly productive.
[0]: https://github.com/evanw/esbuild/blob/master/internal/js_par...
Important distinctions when comparing Closure Compiler's performance to other tools:
1. Regarding bundle size: Optimization level used (SIMPLE optimizations yield output that is at least expected from a minifier these days)
2. Regarding compilation speed:
* Whether the JavaScript-only compiler was used over the JVM compiler: besides being slower, a number of optimizations are not available to the former.
* In many conditions a pre-heated JVM (or Nailgun), or using the NPM-distributed native compiler binary yields faster compilation.
* Which compiler flags have been tuned; e.g. such that the parsing of browser externs is bypassed during compilation for Node.js-targeted bundles.
Relevant discussion: https://github.com/evanw/esbuild/issues/425
I'm the author of esbuild. Rest assured that I am very interested in supporting it and am actively working on it. It's just unfortunately very complicated to correctly, especially without affecting any of the other existing features. There are some recent updates at the bottom of this thread: https://github.com/evanw/esbuild/issues/253.
It's part of the language, but not so much thoroughly vetted. The Chrome/V8 implementation has bugs.
https://github.com/evanw/esbuild/issues/253#issuecomment-773...
> Just the main JS parser file [0] is 12k lines
While that is impressive, I think this is also an indication of a problem: the grammar is becoming unwieldy. For example, even for someone as prolific as Evan, he must decide between feature depth (e.g. bundle splitting) and feature breadth (e.g. implementing the equivalent to @babel/preset-flow, which is used by both flow and hegel[1] type systems)[0]
Esbuild supporting Typescript and JSX is undoubtedly a byproduct of these grammar extensions having become popular. But supporting extra grammar extensions does add to complexity, sometimes in non-trivial ways. In Typescript, for example, you can import types using runtime import syntax, making it ambiguous whether running side-effects from a library is intentional or not. This gets problematic once you consider treeshaking and not-really-standard things like package.json's `browser` field.
It gets even more fun when you realize that module resolution isn't even specified, meaning that as far as a bundler is concerned, something like `import 'lodash'` means completely different things for a browser vs a project installed via npm vs one installed via yarn v2...
Look at how good the releases notes are: https://github.com/evanw/esbuild/releases
Some serious work there.
Stats
evanw/esbuild is an open source project licensed under MIT License which is an OSI approved license.