Dependency hell is caused by the inability to sanely identify and (if necessary) support multiple versions of a dependency.
The primary cause of dependency hell comes from installing and using global dependencies because there's no way to predetermine all of the dependencies that every module and/or application on a system will use.
Thr Javascript ecosystem actively discourages using global dependencies except for CLI tooling.
This is talking specifically about an optimization problem. How to minimize source size by only inporting code that is used directly in the appplication.
AFAIK, no other platforms don't attempt to solve this problem because it's a non-issue except where you're sending code over a network to be executed remotely.
For example, imagine if you had to send the entire Java Runtime Environment over the wire every time you loaded a website.
Yep, NPM is transitioning to flat in V3. Partly because of the nested folder limits in Windows, partly to reduce the ridiculous amount of dependency nesting that occurs with the current model.
JSPM already uses a flat dependency structure. If you look at how it maps dependencies (and specific versions of dependencies) in config.js it makes a lot of sense. The only feature it's missing is the ability to easily search and list multiple versions of the same dependency.