I'm the type that likes to learn from some real, existing codebase. This is frustrating in the JS space, as you would have to have the right version of a bunch of stuff to do that, and how to use it. Libraries, packers, packagers, frameworks, minifiers, and so on.
Other languages have some of that sprawl, but none quite to the same level, and none with the same pace of change.
If you learn like me, my advice would be to have a list of potential candidate projects to learn from and move on to the next one when the tool and dependency hell proves too much.
Was not my experience. The system npm was either too new or too old for the codebase I picked (can't remember). So uninstalled, installed a different one, then some unfixable issue with something called fsevents, other issues regarding "peer dependencies", etc. Similar issues with the second one I tried.
The third project I went with went much better, though it was still difficult to learn things (even if they are working) as every project seems to choose different build/deploy tools.
Sometimes I forget about npm v7-8 (the latest versions). They're "backwards compatible" if you consider "breaks everything" a form of backwards compatibility.
So maybe you're right. Perhaps everything is terrible everywhere.
Other languages have some of that sprawl, but none quite to the same level, and none with the same pace of change.
If you learn like me, my advice would be to have a list of potential candidate projects to learn from and move on to the next one when the tool and dependency hell proves too much.