Someone remarked to me that npm showed up precisely when it was necessary in the ecosystem.
But also, in some way, it couldn't have shown up before the ecosystem wanted it.
There were presumably hundreds, perhaps thousands of little budding proto-npms that just weren't in the right conditions to blossom.
At some point, the conditions were right and one of those lucky little buds blossomed.
It looked like the bud was the deciding factor (top-down), but in actuality the conditions were the deciding factor (bottom-up).
Similar to "the teacher will appear when the student is ready."