Things I found in the npm repo — for real

Erlend Oftedal
2 min readNov 19, 2016

--

Some of you may remember the fake/satirical blog post “I Peeked Into My Node_Modules Directory And You Won’t Believe What Happened Next”. While it was quite funny, most of the stuff presented in it was obviously fake. It did however spark some interest, and I decided to take a closer look at the npm repo. Here are some things your probably didn’t know.

I downloaded the latest version of all packages without their dependencies, and these are the numbers.

Number of packages

352,254

Total size

  • 295GB unpacked. The average unpacked package size is around 837KB, but the 100 largest packages has an average size of 321MB, while the 1000 largest have an average size of 116MB. 407 packages are over 100MB, while 5211 are over 10MB.
  • 99.7GB gzipped. The average gzipped package size is 177KB, but the largest 100 files have an average size of 124MB, while the 1000 largest have an average size of 46MB. 72 packages are over 100MB, while 2103 are over 10MB.

Largest packages gzipped (wire size)

181MB react-native-awesome-card-io@0.5.0
182MB vplayer@1.2.0
190MB elm-engine-core@2.5.2
190MB neyka@3.0.0
268MB ep_latex@0.0.1

Larges packages unpacked (disk size)

612MB mongodump_meteor@1.0.73
629MB quirkbot-avr-gcc@1.0.0
676MB elm-engine-core@2.5.2
709MB public-domain-nypl-captures@1.1.0
788MB ep_latex@0.0.1

What’s in them?

mongodump_meteor: Well it’s sort of in the name. There are two copies of a 306MB MongoDB database

quirkbot-avr-gcc: a bunch of tools compiled for win32, linux32, linux64 and darwin-x64

elm-egine-core: lots of binary libraries

public-domain-nypl-captures: huge JSON-files

ep_latex: a 41MB JavaScript file (pdftex.js), 488MBs of fonts and some data files

react-native-awesome-card-io: Looks like android and iOS libraries

vplayer: a 27MB and a 158MB .mp4, where shortest seems to be a commercial and the largest seems to be a video of an internal company presentation

neyka: images, fonts, bower components

Conclusions

WAT?

--

--