-
Notifications
You must be signed in to change notification settings - Fork 1.2k
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
Intent to replace terser with esbuild #9693
Conversation
I'm happy to donate the package name or something, if you can find a way to make it useful π¬ I never got around the fact that decorators would need Babel still, so If you can find some other useful thing that |
looks like they've recentlyish added support for decorators? evanw/esbuild#104 but, we have a bunch of other custom plugins, like, debug macros. But maybe if we can do all our custom stuff in babel, which is pretty light on cpu, compared to what's happening today), we'll still get some good perf gains? I'm going to investigate this on monday |
More stats
New tools: Yet another new minifier: |
@NullVoxPopuli what's the status on this prototype? are you using it anywhere? |
yeah, I don't think it makes sense to replace terser with esbuild at this time as the tradeoffs aren't so easy to make, and will vary depending on your app's needs. I think it may make sense to provide a minifier as an option to folks -- and all of these libraries can be used today -- folks need only be informed of the tradeoffs they're making. |
Interesting, thanks for the response. I might give this a run over our app, curious to see how it holds up. We're trying to improve deploy times and the production build is a major bottleneck. Be interesting to see the difference in payload size between ESBuild and Terser for us. |
Closing for now if that's okay! |
Draft PR to test things out.
Todos:
@nullvoxpopuli/ember-cli-esbuild
with whatever that new package isRelated PRs:
Stats from a pretty-largeβ’ app internally:
Instead of looking at total build time, I remembered that it'd be better to look at total time spent minifying.
These stats came from the results of:
Stats Collection: https://docs.google.com/spreadsheets/d/1Q1Lhkt_N8LjfRFkrH06AXN3mxn5L2CGh4SW8tNSy720/edit#gid=0
assets/chunk.some-chunk.js
(~382KB)assets/app-name.js
(~1078KB)assets/vendor.js
(~18MB)using esbuild@0.13.12
minification benchmark comparison between tools
NOTE:
final size
is not gzipped or brotli'd. just post-minification