The "right way" is subjective and the first mistake many people make IMO. What I think is the right way isn't always the right way for other people.
Tooling changing in JavaScript is unique to JavaScript only because of the language constraints. PHP, Ruby, etc are all controlled by the developer, whereas JavaScript is controlled by the browser vendors and end users of those browsers. You have more things to work around, inconsistencies to smooth over, and more importantly larger ambition on the frontend than most things can currently support, so new paradigms and frameworks come out to tackle that.
Also 5 years in internet time is a long time. So I'd probably not say it "changes so fast"
Tooling changing in JavaScript is unique to JavaScript only because of the language constraints. PHP, Ruby, etc are all controlled by the developer, whereas JavaScript is controlled by the browser vendors and end users of those browsers. You have more things to work around, inconsistencies to smooth over, and more importantly larger ambition on the frontend than most things can currently support, so new paradigms and frameworks come out to tackle that.
Also 5 years in internet time is a long time. So I'd probably not say it "changes so fast"