For me npm has always been the worst dependency manager I've used.
What bugs me the the most is that it installs all packages to node_modules by default. It is possible to specify another location but then your application will probably break because it has to know where your node_modules directory is.
Then there's the whole non-determinism thing: https://docs.npmjs.com/how-npm-works/npm3-nondet
Also check out https://github.com/npm/npm/issues/10999 This is just insane!