Skip to content

chore(deps): update dependency esbuild to ^0.28.0#2272

Open
renovate[bot] wants to merge 1 commit intomainfrom
renovate/esbuild-0.x
Open

chore(deps): update dependency esbuild to ^0.28.0#2272
renovate[bot] wants to merge 1 commit intomainfrom
renovate/esbuild-0.x

Conversation

@renovate
Copy link
Copy Markdown
Contributor

@renovate renovate Bot commented Jul 19, 2025

This PR contains the following updates:

Package Change Age Confidence
esbuild ^0.25.6^0.28.0 age confidence

Release Notes

evanw/esbuild (esbuild)

v0.28.0

Compare Source

v0.27.7

Compare Source

v0.27.5

Compare Source

v0.27.4

Compare Source

v0.27.3

Compare Source

v0.27.2

Compare Source

v0.27.1

Compare Source

v0.27.0

Compare Source

v0.26.0

Compare Source

v0.25.12

Compare Source

  • Fix a minification regression with CSS media queries (#​4315)

    The previous release introduced support for parsing media queries which unintentionally introduced a regression with the removal of duplicate media rules during minification. Specifically the grammar for @media <media-type> and <media-condition-without-or> { ... } was missing an equality check for the <media-condition-without-or> part, so rules with different suffix clauses in this position would incorrectly compare equal and be deduplicated. This release fixes the regression.

  • Update the list of known JavaScript globals (#​4310)

    This release updates esbuild's internal list of known JavaScript globals. These are globals that are known to not have side-effects when the property is accessed. For example, accessing the global Array property is considered to be side-effect free but accessing the global scrollY property can trigger a layout, which is a side-effect. This is used by esbuild's tree-shaking to safely remove unused code that is known to be side-effect free. This update adds the following global properties:

    From ES2017:

    • Atomics
    • SharedArrayBuffer

    From ES2020:

    • BigInt64Array
    • BigUint64Array

    From ES2021:

    • FinalizationRegistry
    • WeakRef

    From ES2025:

    • Float16Array
    • Iterator

    Note that this does not indicate that constructing any of these objects is side-effect free, just that accessing the identifier is side-effect free. For example, this now allows esbuild to tree-shake classes that extend from Iterator:

    // This can now be tree-shaken by esbuild:
    class ExampleIterator extends Iterator {}
  • Add support for the new @view-transition CSS rule (#​4313)

    With this release, esbuild now has improved support for pretty-printing and minifying the new @view-transition rule (which esbuild was previously unaware of):

    /* Original code */
    @&#8203;view-transition {
      navigation: auto;
      types: check;
    }
    
    /* Old output */
    @&#8203;view-transition { navigation: auto; types: check; }
    
    /* New output */
    @&#8203;view-transition {
      navigation: auto;
      types: check;
    }

    The new view transition feature provides a mechanism for creating animated transitions between documents in a multi-page app. You can read more about view transition rules here.

    This change was contributed by @​yisibl.

  • Trim CSS rules that will never match

    The CSS minifier will now remove rules whose selectors contain :is() and :where() as those selectors will never match. These selectors can currently be automatically generated by esbuild when you give esbuild nonsensical input such as the following:

    /* Original code */
    div:before {
      color: green;
      &.foo {
        color: red;
      }
    }
    
    /* Old output (with --supported:nesting=false --minify) */
    div:before{color:green}:is().foo{color:red}
    
    /* New output (with --supported:nesting=false --minify) */
    div:before{color:green}

    This input is nonsensical because CSS nesting is (unfortunately) not supported inside of pseudo-elements such as :before. Currently esbuild generates a rule containing :is() in this case when you tell esbuild to transform nested CSS into non-nested CSS. I think it's reasonable to do that as it sort of helps explain what's going on (or at least indicates that something is wrong in the output). It shouldn't be present in minified code, however, so this release now strips it out.

v0.25.11

Compare Source

  • Add support for with { type: 'bytes' } imports (#​4292)

    The import bytes proposal has reached stage 2.7 in the TC39 process, which means that although it isn't quite recommended for implementation, it's generally approved and ready for validation. Furthermore it has already been implemented by Deno and Webpack. So with this release, esbuild will also add support for this. It behaves exactly the same as esbuild's existing binary loader. Here's an example:

    import data from './image.png' with { type: 'bytes' }
    const view = new DataView(data.buffer, 0, 24)
    const width = view.getInt32(16)
    const height = view.getInt32(20)
    console.log('size:', width + '\xD7' + height)
  • Lower CSS media query range syntax (#​3748, #​4293)

    With this release, esbuild will now transform CSS media query range syntax into equivalent syntax using min-/max- prefixes for older browsers. For example, the following CSS:

    @&#8203;media (640px <= width <= 960px) {
      main {
        display: flex;
      }
    }

    will be transformed like this with a target such as --target=chrome100 (or more specifically with --supported:media-range=false if desired):

    @&#8203;media (min-width: 640px) and (max-width: 960px) {
      main {
        display: flex;
      }
    }

v0.25.10

Compare Source

  • Fix a panic in a minification edge case (#​4287)

    This release fixes a panic due to a null pointer that could happen when esbuild inlines a doubly-nested identity function and the final result is empty. It was fixed by emitting the value undefined in this case, which avoids the panic. This case must be rare since it hasn't come up until now. Here is an example of code that previously triggered the panic (which only happened when minifying):

    function identity(x) { return x }
    identity({ y: identity(123) })
  • Fix @supports nested inside pseudo-element (#​4265)

    When transforming nested CSS to non-nested CSS, esbuild is supposed to filter out pseudo-elements such as ::placeholder for correctness. The CSS nesting specification says the following:

    The nesting selector cannot represent pseudo-elements (identical to the behavior of the ':is()' pseudo-class). We’d like to relax this restriction, but need to do so simultaneously for both ':is()' and '&', since they’re intentionally built on the same underlying mechanisms.

    However, it seems like this behavior is different for nested at-rules such as @supports, which do work with pseudo-elements. So this release modifies esbuild's behavior to now take that into account:

    /* Original code */
    ::placeholder {
      color: red;
      body & { color: green }
      @&#8203;supports (color: blue) { color: blue }
    }
    
    /* Old output (with --supported:nesting=false) */
    ::placeholder {
      color: red;
    }
    body :is() {
      color: green;
    }
    @&#8203;supports (color: blue) {
       {
        color: blue;
      }
    }
    
    /* New output (with --supported:nesting=false) */
    ::placeholder {
      color: red;
    }
    body :is() {
      color: green;
    }
    @&#8203;supports (color: blue) {
      ::placeholder {
        color: blue;
      }
    }

v0.25.9

Compare Source

  • Better support building projects that use Yarn on Windows (#​3131, #​3663)

    With this release, you can now use esbuild to bundle projects that use Yarn Plug'n'Play on Windows on drives other than the C: drive. The problem was as follows:

    1. Yarn in Plug'n'Play mode on Windows stores its global module cache on the C: drive
    2. Some developers put their projects on the D: drive
    3. Yarn generates relative paths that use ../.. to get from the project directory to the cache directory
    4. Windows-style paths don't support directory traversal between drives via .. (so D:\.. is just D:)
    5. I didn't have access to a Windows machine for testing this edge case

    Yarn works around this edge case by pretending Windows-style paths beginning with C:\ are actually Unix-style paths beginning with /C:/, so the ../.. path segments are able to navigate across drives inside Yarn's implementation. This was broken for a long time in esbuild but I finally got access to a Windows machine and was able to debug and fix this edge case. So you should now be able to bundle these projects with esbuild.

  • Preserve parentheses around function expressions (#​4252)

    The V8 JavaScript VM uses parentheses around function expressions as an optimization hint to immediately compile the function. Otherwise the function would be lazily-compiled, which has additional overhead if that function is always called immediately as lazy compilation involves parsing the function twice. You can read V8's blog post about this for more details.

    Previously esbuild did not represent parentheses around functions in the AST so they were lost during compilation. With this change, esbuild will now preserve parentheses around function expressions when they are present in the original source code. This means these optimization hints will not be lost when bundling with esbuild. In addition, esbuild will now automatically add this optimization hint to immediately-invoked function expressions. Here's an example:

    // Original code
    const fn0 = () => 0
    const fn1 = (() => 1)
    console.log(fn0, function() { return fn1() }())
    
    // Old output
    const fn0 = () => 0;
    const fn1 = () => 1;
    console.log(fn0, function() {
      return fn1();
    }());
    
    // New output
    const fn0 = () => 0;
    const fn1 = (() => 1);
    console.log(fn0, (function() {
      return fn1();
    })());

    Note that you do not want to wrap all function expressions in parentheses. This optimization hint should only be used for functions that are called on initial load. Using this hint for functions that are not called on initial load will unnecessarily delay the initial load. Again, see V8's blog post linked above for details.

  • Update Go from 1.23.10 to 1.23.12 (#​4257, #​4258)

    This should have no effect on existing code as this version change does not change Go's operating system support. It may remove certain false positive reports (specifically CVE-2025-4674 and CVE-2025-47907) from vulnerability scanners that only detect which version of the Go compiler esbuild uses.


Configuration

📅 Schedule: (UTC)

  • Branch creation
    • At any time (no schedule defined)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate renovate Bot force-pushed the renovate/esbuild-0.x branch 5 times, most recently from fe3b993 to 2cda51a Compare July 19, 2025 22:42
@renovate renovate Bot changed the title chore(deps): update dependency esbuild to ^0.25.7 chore(deps): update dependency esbuild to ^0.25.8 Jul 19, 2025
@renovate renovate Bot force-pushed the renovate/esbuild-0.x branch 17 times, most recently from 70f47a4 to 07743e1 Compare July 23, 2025 07:58
@renovate renovate Bot force-pushed the renovate/esbuild-0.x branch from 07743e1 to 1b3ddf6 Compare August 13, 2025 03:42
@renovate renovate Bot changed the title chore(deps): update dependency esbuild to ^0.25.8 chore(deps): update dependency esbuild to ^0.25.9 Aug 13, 2025
@renovate renovate Bot force-pushed the renovate/esbuild-0.x branch 2 times, most recently from 4077263 to f9a0c69 Compare August 31, 2025 14:02
@renovate renovate Bot force-pushed the renovate/esbuild-0.x branch 2 times, most recently from 501c2b2 to 6561bcb Compare September 13, 2025 17:40
@renovate renovate Bot force-pushed the renovate/esbuild-0.x branch from 6561bcb to 9250507 Compare September 17, 2025 20:45
@renovate renovate Bot changed the title chore(deps): update dependency esbuild to ^0.25.12 chore(deps): update dependency esbuild to ^0.26.0 Nov 9, 2025
@renovate renovate Bot force-pushed the renovate/esbuild-0.x branch from 13621ec to 15a3284 Compare November 9, 2025 22:35
@renovate renovate Bot changed the title chore(deps): update dependency esbuild to ^0.26.0 chore(deps): update dependency esbuild to ^0.27.0 Nov 9, 2025
@renovate renovate Bot changed the title chore(deps): update dependency esbuild to ^0.27.0 chore(deps): update dependency esbuild to ^0.27.1 Dec 3, 2025
@renovate renovate Bot force-pushed the renovate/esbuild-0.x branch 2 times, most recently from 2037f37 to d4c67d6 Compare December 4, 2025 04:12
@renovate renovate Bot force-pushed the renovate/esbuild-0.x branch 2 times, most recently from a227476 to ee1efe1 Compare December 11, 2025 11:30
@renovate renovate Bot force-pushed the renovate/esbuild-0.x branch 4 times, most recently from 19c820b to 2196382 Compare December 17, 2025 03:58
@renovate renovate Bot changed the title chore(deps): update dependency esbuild to ^0.27.1 chore(deps): update dependency esbuild to ^0.27.2 Dec 17, 2025
@renovate renovate Bot force-pushed the renovate/esbuild-0.x branch 4 times, most recently from 86f1593 to 5944bad Compare December 31, 2025 16:52
@renovate renovate Bot force-pushed the renovate/esbuild-0.x branch 2 times, most recently from 7a3d91a to f8389c1 Compare January 22, 2026 01:56
@renovate renovate Bot force-pushed the renovate/esbuild-0.x branch 2 times, most recently from 2f999e2 to 73d1d7b Compare February 3, 2026 02:50
@renovate renovate Bot force-pushed the renovate/esbuild-0.x branch from 73d1d7b to a16671a Compare February 6, 2026 01:33
@renovate renovate Bot changed the title chore(deps): update dependency esbuild to ^0.27.2 chore(deps): update dependency esbuild to ^0.27.3 Feb 6, 2026
@renovate renovate Bot force-pushed the renovate/esbuild-0.x branch 2 times, most recently from 9e19265 to e5bd701 Compare March 12, 2026 19:02
@renovate renovate Bot changed the title chore(deps): update dependency esbuild to ^0.27.3 chore(deps): update dependency esbuild to ^0.27.4 Mar 12, 2026
@renovate renovate Bot force-pushed the renovate/esbuild-0.x branch 2 times, most recently from 962c9db to e1a553b Compare March 21, 2026 21:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants