# evanw/esbuild

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/evanw-esbuild).**

39,787 stars · 1,285 forks · Go · mit

## Links

- GitHub: https://github.com/evanw/esbuild
- Homepage: https://esbuild.github.io/
- awesome-repositories: https://awesome-repositories.com/repository/evanw-esbuild.md

## Topics

`bundler` `commonjs` `compiler` `css` `esm` `javascript` `jsx` `minifier` `react` `tsx` `typescript`

## Description

esbuild is a high-performance JavaScript bundler and transpiler designed to transform modern web assets into production-ready code. Built with a focus on speed, it utilizes a concurrent execution model to perform parsing, linking, and code generation across multiple CPU cores. The engine handles a wide range of tasks, including TypeScript compilation, JSX transformation, and CSS bundling, while maintaining a consistent build process across diverse environments.

What distinguishes the project is its architecture, which leverages memory-mapped file processing and a single-pass transformation strategy to minimize overhead. It maintains a persistent dependency graph to enable incremental rebuilds, ensuring rapid feedback loops during development. The tool is highly extensible, featuring a plugin-driven pipeline that allows for custom module resolution and content transformation, alongside a portable runtime that enables execution in both native and browser-based environments.

The project provides a comprehensive suite of build management tools, including configurable output formats, source map generation, and metadata analysis for inspecting bundle composition. It supports flexible integration through a versatile API that accommodates both synchronous and asynchronous workflows, as well as a built-in development server that automates asset updates.

The software is distributed as a portable binary, ensuring consistent performance and behavior across different host operating systems.

## Tags

### Web Development

- [Module Bundlers](https://awesome-repositories.com/f/web-development/module-bundlers.md) — The bundler combines multiple source files into a single output file by recursively inlining all imported dependencies into the final generated bundle. ([source](https://esbuild.github.io/api/))
- [Asset Bundlers](https://awesome-repositories.com/f/web-development/asset-bundlers.md) — Converting modern syntax like TypeScript, JSX, and CSS into browser-compatible code while managing complex dependency graphs and file loaders.
- [Bundler APIs](https://awesome-repositories.com/f/web-development/bundler-apis.md) — The bundler processes entry point files and bundles them into output files using configurable options, with support for incremental builds and long-running build contexts. ([source](https://esbuild.github.io/api/))
- [JavaScript Bundlers](https://awesome-repositories.com/f/web-development/javascript-bundlers.md) — The bundler converts modern JavaScript syntax into older versions based on the configured target, while supporting extensions like JSX and TypeScript through built-in loaders. ([source](https://esbuild.github.io/content-types/))
- [Code Minifiers](https://awesome-repositories.com/f/web-development/code-minifiers.md) — A transformation tool that reduces file size by renaming identifiers, removing whitespace, and applying advanced code compression techniques.
- [CSS Bundlers](https://awesome-repositories.com/f/web-development/css-bundlers.md) — The bundler combines CSS files directly, supporting features like nesting and modern color functions, while enabling scoped class names for local styling. ([source](https://esbuild.github.io/content-types/))
- [Asset Transformation Pipelines](https://awesome-repositories.com/f/web-development/asset-transformation-pipelines.md) — A configurable build process that interprets various file types and converts them into web-ready formats through custom loaders.
- [JSX Transformers](https://awesome-repositories.com/f/web-development/jsx-transformers.md) — The bundler converts JSX syntax into JavaScript function calls, preserves it for downstream tools, or uses automatic transformations for modern development workflows. ([source](https://esbuild.github.io/api/))
- [Module Format Configurations](https://awesome-repositories.com/f/web-development/module-format-configurations.md) — The bundler sets the output format of generated JavaScript files to IIFE, CommonJS, or ESM to control how code is scoped and exported for different environments. ([source](https://esbuild.github.io/api/))

### Development Tools & Productivity

- [Development Build Servers](https://awesome-repositories.com/f/development-tools-productivity/development-build-servers.md) — A local environment that monitors file changes and automatically updates build artifacts to provide a fast feedback loop during development.
- [Build Tooling](https://awesome-repositories.com/f/development-tools-productivity/build-tooling.md) — Standardizing the build process across different platforms and runtimes by providing consistent module resolution and configurable output formats.
- [Parallel Build Engines](https://awesome-repositories.com/f/development-tools-productivity/parallel-build-engines.md) — Uses a highly concurrent language runtime to perform parsing, linking, and code generation tasks across multiple CPU cores simultaneously.
- [Browser-Based Build Environments](https://awesome-repositories.com/f/development-tools-productivity/browser-based-build-environments.md) — The bundler initializes and runs build or transformation tasks within a browser environment using WebAssembly, with options to manage worker threads and script loading. ([source](https://esbuild.github.io/api/))
- [Development Servers](https://awesome-repositories.com/f/development-tools-productivity/development-servers.md) — Watching source files for changes and automatically rebuilding assets to provide immediate feedback during the active coding process. ([source](https://esbuild.github.io/api/))
- [Incremental Build Systems](https://awesome-repositories.com/f/development-tools-productivity/incremental-build-systems.md) — Maintains a persistent internal map of file relationships to identify and rebuild only the affected modules when source files change.
- [Module Resolution Utilities](https://awesome-repositories.com/f/development-tools-productivity/module-resolution-utilities.md) — The bundler substitutes packages, applies custom conditions for package exports, and configures how modules are located during the bundling process to ensure correct file mapping. ([source](https://esbuild.github.io/api/))
- [Module Transformation Pipelines](https://awesome-repositories.com/f/development-tools-productivity/module-transformation-pipelines.md) — The bundler allows plugins to read files or generate code to transform module contents, and specify how the bundler should interpret the resulting data using custom loaders. ([source](https://esbuild.github.io/plugins/))
- [AST Transformation Tools](https://awesome-repositories.com/f/development-tools-productivity/ast-transformation-tools.md) — Processes source code through a unified internal representation to perform minification, transpilation, and bundling in a single traversal.
- [Plugin Resolution Strategies](https://awesome-repositories.com/f/development-tools-productivity/plugin-resolution-strategies.md) — The bundler allows plugins to customize module path resolution by redirecting import paths, marking paths as external, or resolving paths to virtual modules. ([source](https://esbuild.github.io/plugins/))
- [Build Loaders](https://awesome-repositories.com/f/development-tools-productivity/build-loaders.md) — The bundler assigns loaders to specific file extensions to determine how input files are interpreted, allowing non-JavaScript files to be imported directly into source code. ([source](https://esbuild.github.io/api/))
- [Build Plugin Architectures](https://awesome-repositories.com/f/development-tools-productivity/build-plugin-architectures.md) — Allows custom logic to intercept module path lookups and file loading, enabling integration with external build systems and virtual modules.
- [Build Analysis Tools](https://awesome-repositories.com/f/development-tools-productivity/build-analysis-tools.md) — The bundler examines build output to generate human-readable reports or machine-readable metadata files detailing bundle contents, file sizes, and dependency graphs. ([source](https://esbuild.github.io/api/))
- [Build-Time Constants](https://awesome-repositories.com/f/development-tools-productivity/build-time-constants.md) — The bundler replaces global identifiers with constant expressions during builds to toggle code behavior or inject environment-specific values without modifying source files. ([source](https://esbuild.github.io/api/))
- [File Watchers](https://awesome-repositories.com/f/development-tools-productivity/file-watchers.md) — The bundler monitors the file system for modifications to source files and automatically triggers a rebuild whenever any file that could invalidate the current build changes. ([source](https://esbuild.github.io/api/))
- [High-Performance I/O Utilities](https://awesome-repositories.com/f/development-tools-productivity/high-performance-i-o-utilities.md) — Reads and parses source files directly from memory buffers to minimize disk I/O overhead during the entire build lifecycle.
- [In-Memory Build Processors](https://awesome-repositories.com/f/development-tools-productivity/in-memory-build-processors.md) — Transforming or minifying raw code strings directly within memory to enable fast, file-system-agnostic build operations in diverse environments.
- [In-Memory Transformation Engines](https://awesome-repositories.com/f/development-tools-productivity/in-memory-transformation-engines.md) — The bundler modifies raw code strings in an isolated, in-memory environment to perform minification or transpilation of individual files without requiring file system access. ([source](https://esbuild.github.io/api/))
- [Source Map Generators](https://awesome-repositories.com/f/development-tools-productivity/source-map-generators.md) — The bundler creates source maps to link transformed code back to original sources, with options to set source roots and custom filenames for input streams. ([source](https://esbuild.github.io/api/))

### Programming Languages & Runtimes

- [Transpilers](https://awesome-repositories.com/f/programming-languages-runtimes/compiler-interpreter-internals/transpilers.md) — A build-time engine that strips type annotations and converts modern syntax into standard JavaScript compatible with older browser versions.
- [WebAssembly](https://awesome-repositories.com/f/programming-languages-runtimes/runtime-execution-environments/webassembly.md) — Compiles the core logic into a portable binary format to ensure identical build performance and behavior across different host environments.
