Compare: Clojure. You have the project.clj file and put your dependencies there. The you do lein run or build a fat jar and run it like java -cp your.jar your_app.core. The end.
And "lolz"? 2010 called...
https://nextjs.org/case-studies/hulu
https://nextjs.org/showcase/uber
https://eng.lyft.com/changing-lanes-how-lyft-is-migrating-10...
It's worth noting that there is some inherent complexity in the web platform due to the fact that you are generally targetting multiple platforms. Server side code has it easy here (and indeed Node.js generally needs little in the way of build process)
Regarding error with native NPM dependencies (usually when switching node versionw, or switching between macOS node and linux node in docker): this can almost always be solved witha simple `npm rebuild` once when you change node version.
What would be your advice to someone seeking to do this?
e.g. - is it simply a matter of intelligence, perseverance, attitude? - is there a technical or social practice you find helpful?