A good package manager should allow to:
-share dependencies
-provide a way to install multiple versions of the same package
These requirements are not mutually exclusive. With a proper file system hierarchy both of them could be accomplished.
Most of the popular distribution's package managers (apt, pacman, etc) support the sharing dependencies but almost none of them support installing multiple versions of the package.
Given that storage space is very cheap nowadays I think a package manager like NPM which stores copies of the dependencies is not that bad actually.
These requirements are not mutually exclusive. With a proper file system hierarchy both of them could be accomplished.
Most of the popular distribution's package managers (apt, pacman, etc) support the sharing dependencies but almost none of them support installing multiple versions of the package.
Given that storage space is very cheap nowadays I think a package manager like NPM which stores copies of the dependencies is not that bad actually.