What is NPM?
NPM is the exponential function.
600,000+ Functions
With over 600,000 modules and approximately 3 billion downloads per week NPM is the largest software registry in the world.
The registry’s size is partly a function of explosive Node.js popularity the past several years as well as JavaScript’s…functional nature. Unlike packages you’d find in Maven (Java) or PyPi (Python), packages published in NPM tend to be highly specific single-purpose functions (e.g. left-pad).
Heaviest Objects In The Universe
Although the implementation has improved more recently a side effect of such a massive dependency set is an equally massive node_modules [staging] directory.
WebAssembly Boom[aybe]
With the introduction of WebAssembly as a compile target tools such as wasm-pack will likely help maintain NPM’s present trajectory for some time to come.
Dangers of NPM — maybe…someday.
NPM’s extremely lax [publication] policies do perpetuate counterparty risks and the client’s default implementation often requires elaborate hacks (less so recently) to work without contacting an external registry server at build time.