Back to Explore

evanw/esbuild

GitHub
1 updates · last 90 days1 watchersOpen source

Last release:

esbuild is an extremely fast JavaScript bundler for the web that also supports TypeScript, JSX, and CSS out of the box. It provides a straightforward API and tools like minification, tree shaking, source maps, a local server, watch mode, and plugins, useful for building bundles for ESM and CommonJS modules.

Project status

  • Actively maintained, with very recent work (latest upstream push 2026-06-12, and esbuild updates as recent as 2026-06-11 and 2026-06-11 22:47 UTC for v0.28.1).
  • Update cadence looks consistent with steady development, with a short gap from v0.28.0 (2026-04-02) to v0.28.1 (2026-06-11), and multiple correctness-focused updates clustered around early April 2026 (v0.27.5 to v0.27.7).

AI summary generated

AI-generated from public sources. May be inaccurate. Report

Recent updates

  • v0.28.1

    v0.28.1 patches a Windows-specific path traversal issue in esbuild's local development server, rejecting requests whose URL path contains the backslash character. It also adds integrity verification to the esbuild Deno API installation path, and includes multiple bundling correctness fixes related to minification, module evaluation error handling, and code generation around the JavaScript new operator and optional chaining.

    BreakingSecurity
  • v0.28.0

    v0.28.0 adds support for TC39 import attributes using `with { type: 'text' }`, behaving like the existing `text` loader. It also introduces SHA-256 integrity checking during the npm install script's fallback download path, and bumps the embedded Go compiler from 1.25.7 to 1.26.1.

    BreakingFeatures
  • v0.27.7

    v0.27.7 fixes esbuild's lowering of TypeScript parameter properties when `useDefineForClassFields` is enabled, ensuring the generated code matches the configured class fields support. While the release notes focus on this TS-specific lowering bug, the diff also includes several other internal changes, including type signature updates, compatibility table updates for certain engines, and build/dependency bumps.

  • v0.27.5

    v0.27.5 fixes a specific bug in esbuild's async generator transformation when async generators are polled concurrently. It also fixes a regression in the JS API's `metafile` handling when `metafile: true` is used with build errors, and adds support for targeting `ES2025` in `tsconfig.json` along with updated TypeScript parameter property output when `useDefineForClassFields` is enabled.

    Features
  • v0.27.4

    v0.27.4 fixes a regression in CSS media query printing related to the `<media-type> and <media-condition-without-or>` grammar, and addresses an edge case with the `inject` feature when handling arbitrary module namespace names. It also improves JavaScript API handling of huge metafiles by avoiding V8 string length limits and reducing metafile size for very large bundles.

  • v0.27.3

    esbuild v0.27.3 fixes CSS bundling for data URLs so URL fragments (hash suffixes) are preserved, and it adds dedicated parsing and printing support for CSS @scope rules. It also fixes a minification bug related to lowering for-await loops. In addition to the documented changes, the diff shows updates to esbuild's internal browser/feature compatibility tables and a CSS gradient transformation change that are not mentioned in the release notes.

    Features
  • v0.27.2

    esbuild v0.27.2 expands JavaScript import-map compatibility by allowing package.json `imports` specifiers that start with `#/`. It also changes CSS output to automatically emit the `-webkit-mask` vendor-prefixed form when using the `mask` shorthand, and improves `--minify` output for certain `switch` patterns. Finally, it tightens parsing rules by making `using` declarations directly inside `switch` case/default clauses a syntax error.

    BreakingFeatures
  • v0.27.1

    v0.27.1 focuses on correctness fixes in the bundler and minifier, plus a couple of minification improvements. It includes fixes for hoisting nested top-level var declarations when wrapping ES modules for require(), a minifier regression involving labeled for/try transformations from for-await lowering, and enhancements around inlining small IIFEs and stripping empty finally clauses. It also expands tree-shaking to treat Symbol construction as side-effect free for primitive-known arguments.

    Features
  • v0.27.0

    Release v0.27.0 changes esbuild's "binary" loader to prefer Uint8Array.fromBase64 when the configured target environment supports it. It also bumps the Go compiler to v1.25.4, which increases the minimum OS requirements for running esbuild.

    BreakingFeatures
  • v0.26.0

    Release v0.26.0 focuses on moving esbuild's npm publishing to GitHub Actions using npm trusted publishing. The code changes primarily update CI/CD automation (new publish workflow, removed old release workflow) and bump all package versions from 0.25.12 to 0.26.0.

    SecurityFeatures
  • v0.25.12

    esbuild v0.25.12 fixes a CSS minification regression affecting duplicate media rule removal for certain @media grammars. It also adds support for the @view-transition CSS rule, improves CSS minification by trimming dead :is() and :where() selectors, and expands the set of known side-effect-free JavaScript globals to improve tree-shaking.

    SecurityFeatures