Code Monkey home page Code Monkey logo

Comments (10)

floatdrop avatar floatdrop commented on April 28, 2024

Full list of browserified modules: https://gist.github.com/floatdrop/acfb074b261288655e45

Top of size-eaters:

  • browserify-zlib is 173.3 Kb f9f2807
  • duplexify is 64.9 Kb
  • buffer is 43.7 Kb

from got.

mattdesl avatar mattdesl commented on April 28, 2024

👍

I started got-xhr for this reason but haven't published it yet. If possible, I would rather build on an existing module than add more clutter to npm.

But with that said, it might be necessary to have a separate got-like module that has a more limited scope than got. Things like:

  • avoiding Buffer, and instead using ArrayBuffer since it is more common in the browser
  • avoiding zlib, since the browser handles gzip for us anyways (from what I understand?)
  • avoiding streams entirely since they add a pretty significant amount of bloat
  • just using xhr under the hood

from got.

mattdesl avatar mattdesl commented on April 28, 2024

Update: I'm now using xhr-request in node/browser for non-streamed requests.

For streamed requests, simple-get is pretty good, and half the size of got.

got could probably be almost as small as simple-get by doing something like this:
https://github.com/feross/simple-get/blob/d212b1022d21b49c8ec83acf251d1dc4aeb38ca3/package.json#L10-L12

from got.

kevva avatar kevva commented on April 28, 2024

66542fd reduced the size from 471 KB to 268 KB, thanks @mattdesl.

from got.

floatdrop avatar floatdrop commented on April 28, 2024

With 6.0.0 version got is almost same size as simple-get, but still 10x bigger than xhr.

❯ browserify -r got | wc -c
  207787

❯ browserify -r simple-get | wc -c
  194566

❯ browserify -r xhr | wc -c
  11147

from got.

sindresorhus avatar sindresorhus commented on April 28, 2024

@floatdrop Woot! Try gzipping too. That gives more accurate numbers.

from got.

mattdesl avatar mattdesl commented on April 28, 2024

Nice!

gzip can be misleading when you are considering how bundle size affects parse/execution time. 😄

More details:
https://timkadlec.com/2014/09/js-parse-and-execution-time/

from got.

mattdesl avatar mattdesl commented on April 28, 2024

But you should probably include uglifyjs -cm to get a better idea.

from got.

mattdesl avatar mattdesl commented on April 28, 2024

p.s. You can't run got through uglify-js right now because it has some ES6-isms (which also means it will break on safari, IE and the likes).

browserify -r got | uglifyjs -cm | wc -c
Parse error at -:7172,5
Unexpected token: name (redirectCount)
Error
    at new JS_Parse_Error (eval at <anonymous> (/Users/matt/npm/lib/node_modules/uglify-js/tools/node.js:22:1), <anonymous>:1526:18)
   ...

from got.

thisconnect avatar thisconnect commented on April 28, 2024

@mattdesl about Unexpected token: name (redirectCount) it is caused by let, see mishoo/UglifyJS#887

from got.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.