While npm and semver are far from perfect, I've personally found them to make dependency management a lot less of a headache in node than, for example, python which is an absolute nightmare to deal with. You still have to make sure you're using fairly stable, well written packages by people who actually understand semver and best practices but the same applies everywhere and I've found the node community's to this kind of detail better than most other ecosystems.