I have a Node JS backend which consists only of API.
I want to develop an Angular dashboard for my system, that communicates through REST API to perform all actions.
I have seen some MEAN examples where the Angular project lives inside the Node JS project, in public folder.
However I was wondering if this is the best approach, or should I create another project that simply connects to the API and that is hosted independently.
My main fear is that Node JS project is deployed in Google Cloud Platform and I have the feeling/understanding that whenever I update something I need to upload a whole new instance of the project (and traffic is redirected to this new instance), so I would lose control of API versions if new updates are being submitted for frontend changes.
No, it doesn't have to be on the same project or hosting, angular 2 or any other single page application framework would work just as fine with any API as long as you apply same origin policies or your API provide the right CORS policy headers.
here is how to enable CORS on express.js if you are planing to have backend on a different domain.
or you can redirect/proxy specific urls to be served from different upstreams or static files using Nginx for example.
You can even have your angular app hosted via a cdn where your api is on any other hosting.
It is even recommended to manage back end and front end in separate developing cycles.