> However, for all of NPM’s problems, at least it is a package management system at all! It’s easy to pick on NPM (or predecessors like CPAN, or CTAN, or...), but even at its worst it’s a huge improvement over manually managing dependencies (such as by manually vendoring them into your source tree, or just telling the user to install such-and-such libraries before attempting to compile).
Isn't the labor-intensive nature of manually wrangling all of these resources a constraint that pushes people to minimize version conflicts and micro-dependencies? The reason that you see these problems in NPM (and other version control systems) is because the automation removes a constraint.