Things I found in the npm repo — for real
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?