I actually think NPM is an amazing tool. When comparing to many other dependency management solutions, NPM:
1. has a nicer user experience
2. gives a lot of confidence that a project will be reproducible across environments, with only a package.json file
Cargo is pretty close, but NPM is the gold standard for dependency management as far as I'm concerned.