Skip to content

Commit

Permalink
v0.22.0
Browse files Browse the repository at this point in the history
This release deliberately contains backwards-incompatible changes. To avoid
automatically picking up releases like this, you should either be pinning the
exact version of esbuild in your package.json file (recommended) or be using a
version range syntax that only accepts patch upgrades such as ^0.21.0 or
~0.21.0. See npm's documentation about semver for more information.

  * Omit packages from bundles by default when targeting node

    This breaking change is an experiment. People are commonly confused when
    using esbuild to bundle code for node (i.e. for --platform=node) because
    some packages may not be intended for bundlers, and may use node-specific
    features that don't work with a bundler. Even though esbuild's "getting
    started" instructions say to use --packages=external to work around this
    problem, many people don't read the documentation and don't do this, and
    are then confused when it doesn't work. So arguably this is a bad default
    behavior for esbuild to have if people keep tripping over this.

    With this release, esbuild will now omit packages from the bundle by
    default when the platform is node (i.e. the previous behavior of --packages
    =external is now the default in this case). Note that your dependencies
    must now be present on the file system when your bundle is run. If you
    don't want this behavior, you can do --packages=bundle to allow packages to
    be included in the bundle (i.e. the previous default behavior). Note that
    --packages=bundle doesn't mean all packages are bundled, just that packages
    are allowed to be bundled. You can still exclude individual packages from
    the bundle using --external: even when --packages=bundle is present.

    The --packages= setting considers all import paths that "look like" package
    imports in the original source code to be package imports. Specifically
    import paths that don't start with a path segment of / or . or .. are
    considered to be package imports. The only two exceptions to this rule are
    subpath imports (which start with a # character) and TypeScript path
    remappings via paths and/or baseUrl in tsconfig.json (which are applied
    first).

  * Update await using behavior to match TypeScript

    TypeScript 5.5 subtly changes the way await using behaves. This release
    updates esbuild to match these changes in TypeScript. You can read more
    about these changes in microsoft/TypeScript#58624.

  * Allow es2024 as a target environment

    The ECMAScript 2024 specification was just approved, so it has been added
    to esbuild as a possible compilation target. You can read more about the
    features that it adds here: https://2ality.com/2024/06/ecmascript-2024.html
    . The only addition that's relevant for esbuild is the regular expression /
    v flag. With --target=es2024, regular expressions that use the /v flag will
    now be passed through untransformed instead of being transformed into a
    call to new RegExp.

  * Publish binaries for WASI (WebAssembly System Interface) preview 1

    The upcoming WASI (WebAssembly System Interface) standard is going to be a
    way to run WebAssembly outside of a JavaScript host environment. In this
    scenario you only need a .wasm file without any supporting JavaScript code.
    Instead of JavaScript providing the APIs for the host environment, the WASI
    standard specifies a "system interface" that WebAssembly code can access
    directly (e.g. for file system access).

    Development versions of the WASI specification are being released using
    preview numbers. The people behind WASI are currently working on preview 2
    but the Go compiler has released support for preview 1, which from what I
    understand is now considered an unsupported legacy release. However, some
    people have requested that esbuild publish binary executables that support
    WASI preview 1 so they can experiment with them.

    This release publishes esbuild precompiled for WASI preview 1 to the
    @esbuild/wasi-preview1 package on npm (specifically the file @esbuild/
    wasi-preview1/esbuild.wasm). This binary executable has not been tested and
    won't be officially supported, as it's for an old preview release of a
    specification that has since moved in another direction. If it works for
    you, great! If not, then you'll likely have to wait for the ecosystem to
    evolve before using esbuild with WASI. For example, it sounds like perhaps
    WASI preview 1 doesn't include support for opening network sockets so
    esbuild's local development server is unlikely to work with WASI preview 1.

  * Warn about onResolve plugins not setting a path

    Plugins that return values from onResolve without resolving the path (i.e.
    without setting either path or external: true) will now cause a warning.
    This is because esbuild only uses return values from onResolve if it
    successfully resolves the path, and it's not good for invalid input to be
    silently ignored.

  * Add a new Go API for running the CLI with plugins

    With esbuild's Go API, you can now call cli.RunWithPlugins(args, plugins)
    to pass an array of esbuild plugins to be used during the build process.
    This allows you to create a CLI that behaves similarly to esbuild's CLI but
    with additional Go plugins enabled.
  • Loading branch information
bsiegert committed Jul 1, 2024
1 parent c7f5fa4 commit 7163556
Show file tree
Hide file tree
Showing 3 changed files with 7 additions and 8 deletions.
5 changes: 2 additions & 3 deletions www/esbuild/Makefile
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
# $NetBSD: Makefile,v 1.9 2024/06/13 13:47:11 bsiegert Exp $
# $NetBSD: Makefile,v 1.10 2024/07/01 18:12:45 bsiegert Exp $

DISTNAME= esbuild-0.19.5
DISTNAME= esbuild-0.22.0
GITHUB_TAG= v${PKGVERSION_NOREV}
PKGREVISION= 8
CATEGORIES= www
MASTER_SITES= ${MASTER_SITE_GITHUB:=evanw/}

Expand Down
8 changes: 4 additions & 4 deletions www/esbuild/distinfo
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
$NetBSD: distinfo,v 1.1 2023/10/19 10:22:28 bsiegert Exp $
$NetBSD: distinfo,v 1.2 2024/07/01 18:12:45 bsiegert Exp $

BLAKE2s (esbuild-0.19.5.tar.gz) = 151a849e9d252331cd389ec546038e7afbf4f978d6a55fe50418c96c56c283c2
SHA512 (esbuild-0.19.5.tar.gz) = b406e3997db8f47d9497c185d9e71ec2fdadaf35d1196e8317d0f1ce36a44bb0436e339edfc9c4adbf800880359772abb85676cc420250856a37219ee1c1f80d
Size (esbuild-0.19.5.tar.gz) = 1770512 bytes
BLAKE2s (esbuild-0.22.0.tar.gz) = 284f5c191f9768db991118ae3c45ac15ee8368b003c88c16df589892219f7501
SHA512 (esbuild-0.22.0.tar.gz) = 947bbf6b42cc83bc1fc8eaf1dbe8dc0e9e37ae0abee3e56abc10fe148b942f7672ff11be406bc973a2d0b6958bc20c1af9b658a2c3f08aae3f35eada1affb8f9
Size (esbuild-0.22.0.tar.gz) = 1888093 bytes
BLAKE2s (golang.org_x_sys_@v_v0.0.0-20220715151400-c0bba94af5f8.mod) = 66613eb38a59b8a7f75e1aaeb294a1c4ea290d4e9ae699137566025e50ed741c
SHA512 (golang.org_x_sys_@v_v0.0.0-20220715151400-c0bba94af5f8.mod) = 85e511b1261c1935f5ee4754ad31d1d946f9e10f0af9905f44c4348d6ce5104319c03fb38517dde616698f6487b0c62788cfa96bc0ffb3b6db80accd7e552655
Size (golang.org_x_sys_@v_v0.0.0-20220715151400-c0bba94af5f8.mod) = 33 bytes
Expand Down
2 changes: 1 addition & 1 deletion www/esbuild/go-modules.mk
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# $NetBSD: go-modules.mk,v 1.1 2023/10/19 10:22:28 bsiegert Exp $
# $NetBSD: go-modules.mk,v 1.2 2024/07/01 18:12:45 bsiegert Exp $

GO_MODULE_FILES+= golang.org/x/sys/@v/v0.0.0-20220715151400-c0bba94af5f8.mod
GO_MODULE_FILES+= golang.org/x/sys/@v/v0.0.0-20220715151400-c0bba94af5f8.zip

0 comments on commit 7163556

Please sign in to comment.