In terms of Node breaking when switch platforms - are you syncing the node_modules folder between machines somehow? Don't do that. Doing "npm install" will sometimes install binaries specific to a platform that won't work across them. Put node_modules in your.gitignore, and sync between machines using version control rather than something like Dropbox. I used to just put the whole project in Dropbox but ran into too any issues between Mac/Windows.
Again, this is coming from someone who doesn't do web dev full time, so I'd probably resolve issues faster if I did, but for my side projects, it's too much maintenance. I just want to be productive if I have an hour or so a day. Flutter lets me do that. I write code, code runs on Android and iOS. It's easy. No react/vue/angular, webpack, bootstrap, scss, typescript definition files, or other 'magic' to worry about.
It's easy to setup, install, and it just works. I develop on Windows and Mac with a .NET Core backend and communicating via GRPC. Deploying the backend to a CentOS server. No issues running anything on Windows, Mac, or Linux, surprisingly. Whenever I have to use node, everything randomly breaks when switching environments. (Maybe I'm just bad with node/webpack and all that, but there is way too much I have to know to just build something).