npm's package dependencies are a never-ending headache, every project I start feels like a "build this project and all its transitive dependencies" puzzle, how did we let it get this way?