esbuild

An extremely fast JavaScript bundler and minifier (by evanw)

Esbuild Alternatives

Similar projects and alternatives to esbuild
  • GitHub repo Snowpack

    WASM-powered frontend build tool. Fast, lightweight, unbundled ESM. ✌️

  • GitHub repo swc

    swc is a super-fast compiler written in rust; producing widely-supported javascript from modern standards and typescript.

  • GitHub repo serverless-stack

    Serverless Stack (SST) is a framework that makes it easy to build serverless apps.

  • GitHub repo TypeScript-Website

    The Website and web infrastructure for learning TypeScript

  • GitHub repo deno

    A secure JavaScript and TypeScript runtime

  • GitHub repo 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.

  • GitHub repo Hugo

    The world’s fastest framework for building websites.

  • GitHub repo 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.

  • GitHub repo PostCSS

    Transforming styles with JS plugins

  • GitHub repo vite

    Next generation frontend tooling. It's fast!

  • GitHub repo ESLint

    Find and fix problems in your JavaScript code.

  • GitHub repo sucrase

    Super-fast alternative to Babel for when you can target modern JS runtimes

  • GitHub repo 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/

  • GitHub repo ali

    Generate HTTP load and plot the results in real-time

  • GitHub repo esm.sh

    A fast, global content delivery network for ES Modules.

  • GitHub repo minification-benchmarks

    🏃‍♂️🏃‍♀️🏃 JS minification benchmarks: babel-minify, esbuild, terser, uglify-js, swc, google closure compiler

  • GitHub repo homepage

    Seed Homepage (by seed-run)

  • GitHub repo micro-editor

    A modern and intuitive terminal-based text editor

  • GitHub repo Hey

    HTTP load generator, ApacheBench (ab) replacement, formerly known as rakyll/boom

  • GitHub repo vega

    A visualization grammar.

NOTE: The number of mentions on this list indicates mentions on common posts. Hence, a higher number means a better esbuild alternative or higher similarity.

Posts

Posts where esbuild has been mentioned. We have used some of these posts to build our list of alternatives and similar projects - the last one was on 2021-03-02.
  • Deno v1.8 – support for WebGPU, private modules, Intl, and much more
    news.ycombinator.com | 2021-03-02
    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
    news.ycombinator.com | 2021-03-02
    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
    dev.to | 2021-02-26
    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
    news.ycombinator.com | 2021-02-23
  • AWS CDK - One-Step S3 Websites with esbuild
    dev.to | 2021-02-22
    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
    news.ycombinator.com | 2021-02-21
    news.ycombinator.com | 2021-02-18
  • Announcing Vite 2.0
    dev.to | 2021-02-16
    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?
    news.ycombinator.com | 2021-02-16
    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...

    news.ycombinator.com | 2021-02-16
    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

    news.ycombinator.com | 2021-02-16
    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.
    news.ycombinator.com | 2021-02-16
    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...

    news.ycombinator.com | 2021-02-16
    > 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...

    [0] https://github.com/evanw/esbuild/issues/79

    news.ycombinator.com | 2021-02-16
    Look at how good the releases notes are: https://github.com/evanw/esbuild/releases

    Some serious work there.

Stats

Basic esbuild repo stats
24
20,839
9.9
3 days ago

evanw/esbuild is an open source project licensed under MIT License which is an OSI approved license.