Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bump esbuild from 0.14.49 to 0.16.5 #48

Closed
wants to merge 1 commit into from

Conversation

dependabot[bot]
Copy link

@dependabot dependabot bot commented on behalf of github Dec 13, 2022

Bumps esbuild from 0.14.49 to 0.16.5.

Release notes

Sourced from esbuild's releases.

v0.16.5

  • Make it easy to exclude all packages from a bundle (#1958, #1975, #2164, #2246, #2542)

    When bundling for node, it's often necessary to exclude npm packages from the bundle since they weren't designed with esbuild bundling in mind and don't work correctly after being bundled. For example, they may use __dirname and run-time file system calls to load files, which doesn't work after bundling with esbuild. Or they may compile a native .node extension that has similar expectations about the layout of the file system that are no longer true after bundling (even if the .node extension is copied next to the bundle).

    The way to get this to work with esbuild is to use the --external: flag. For example, the fsevents package contains a native .node extension and shouldn't be bundled. To bundle code that uses it, you can pass --external:fsevents to esbuild to exclude it from your bundle. You will then need to ensure that the fsevents package is still present when you run your bundle (e.g. by publishing your bundle to npm as a package with a dependency on fsevents).

    It was possible to automatically do this for all of your dependencies, but it was inconvenient. You had to write some code that read your package.json file and passed the keys of the dependencies, devDependencies, peerDependencies, and/or optionalDependencies maps to esbuild as external packages (either that or write a plugin to mark all package paths as external). Previously esbuild's recommendation for making this easier was to do --external:./node_modules/* (added in version 0.14.13). However, this was a bad idea because it caused compatibility problems with many node packages as it caused esbuild to mark the post-resolve path as external instead of the pre-resolve path. Doing that could break packages that are published as both CommonJS and ESM if esbuild's bundler is also used to do a module format conversion.

    With this release, you can now do the following to automatically exclude all packages from your bundle:

    • CLI:

      esbuild --bundle --packages=external
      
    • JS:

      esbuild.build({
        bundle: true,
        packages: 'external',
      })
    • Go:

      api.Build(api.BuildOptions{
        Bundle:   true,
        Packages: api.PackagesExternal,
      })

    Doing --external:./node_modules/* is still possible and still has the same behavior, but is no longer recommended. I recommend that you use the new packages feature instead.

  • Fix some subtle bugs with tagged template literals

    This release fixes a bug where minification could incorrectly change the value of this within tagged template literal function calls:

    // Original code
    function f(x) {
      let z = y.z
      return z``
    }
    // Old output (with --minify)
    function f(n){return y.z``}

... (truncated)

Changelog

Sourced from esbuild's changelog.

0.16.5

  • Make it easy to exclude all packages from a bundle (#1958, #1975, #2164, #2246, #2542)

    When bundling for node, it's often necessary to exclude npm packages from the bundle since they weren't designed with esbuild bundling in mind and don't work correctly after being bundled. For example, they may use __dirname and run-time file system calls to load files, which doesn't work after bundling with esbuild. Or they may compile a native .node extension that has similar expectations about the layout of the file system that are no longer true after bundling (even if the .node extension is copied next to the bundle).

    The way to get this to work with esbuild is to use the --external: flag. For example, the fsevents package contains a native .node extension and shouldn't be bundled. To bundle code that uses it, you can pass --external:fsevents to esbuild to exclude it from your bundle. You will then need to ensure that the fsevents package is still present when you run your bundle (e.g. by publishing your bundle to npm as a package with a dependency on fsevents).

    It was possible to automatically do this for all of your dependencies, but it was inconvenient. You had to write some code that read your package.json file and passed the keys of the dependencies, devDependencies, peerDependencies, and/or optionalDependencies maps to esbuild as external packages (either that or write a plugin to mark all package paths as external). Previously esbuild's recommendation for making this easier was to do --external:./node_modules/* (added in version 0.14.13). However, this was a bad idea because it caused compatibility problems with many node packages as it caused esbuild to mark the post-resolve path as external instead of the pre-resolve path. Doing that could break packages that are published as both CommonJS and ESM if esbuild's bundler is also used to do a module format conversion.

    With this release, you can now do the following to automatically exclude all packages from your bundle:

    • CLI:

      esbuild --bundle --packages=external
      
    • JS:

      esbuild.build({
        bundle: true,
        packages: 'external',
      })
    • Go:

      api.Build(api.BuildOptions{
        Bundle:   true,
        Packages: api.PackagesExternal,
      })

    Doing --external:./node_modules/* is still possible and still has the same behavior, but is no longer recommended. I recommend that you use the new packages feature instead.

  • Fix some subtle bugs with tagged template literals

    This release fixes a bug where minification could incorrectly change the value of this within tagged template literal function calls:

    // Original code
    function f(x) {
      let z = y.z
      return z``
    }
    // Old output (with --minify)

... (truncated)

Commits
  • bb9639c publish 0.16.5 to npm
  • 7277ffd add --packages=external for the node platform
  • 23bc04e avoid mutating the original ast in helper methods
  • cc86841 remove some unnecessary checks
  • dbbbbcd ensure delete (0,x.y) never becomes delete x.y
  • 3afa199 more tests for the delete operator
  • 25ac219 extract constant folding from parser into helpers
  • f43734c more test coverage for non-minified behavior
  • c5229f6 extract more helpers out of js parser
  • 1c0e44b move "can be removed if unused" to ast helpers
  • Additional commits viewable in compare view

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot merge will merge this PR after your CI passes on it
  • @dependabot squash and merge will squash and merge this PR after your CI passes on it
  • @dependabot cancel merge will cancel a previously requested merge and block automerging
  • @dependabot reopen will reopen this PR if it is closed
  • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

Bumps [esbuild](https://github.com/evanw/esbuild) from 0.14.49 to 0.16.5.
- [Release notes](https://github.com/evanw/esbuild/releases)
- [Changelog](https://github.com/evanw/esbuild/blob/main/CHANGELOG.md)
- [Commits](evanw/esbuild@v0.14.49...v0.16.5)

---
updated-dependencies:
- dependency-name: esbuild
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot bot added the dependencies Pull requests that update a dependency file label Dec 13, 2022
@vercel
Copy link

vercel bot commented Dec 13, 2022

The latest updates on your projects. Learn more about Vercel for Git ↗︎

Name Status Preview Updated
hls-video-element ✅ Ready (Inspect) Visit Preview Dec 13, 2022 at 11:10PM (UTC)

@dependabot @github
Copy link
Author

dependabot bot commented on behalf of github Dec 14, 2022

Superseded by #49.

@dependabot dependabot bot closed this Dec 14, 2022
@dependabot dependabot bot deleted the dependabot/npm_and_yarn/esbuild-0.16.5 branch December 14, 2022 23:07
luwes pushed a commit that referenced this pull request Feb 7, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
dependencies Pull requests that update a dependency file
Projects
None yet
Development

Successfully merging this pull request may close these issues.

0 participants