its really pretty simple. instead of your asp.net core application being a proxy to the node dev server (like .net 3.1 -> 5), now the node dev server proxies to asp.net core application. also the startup is done by msbuild/dotnet.exe injecting the code into your application. this means the startup setting are in the launch file, rather than app settings file.
this all follows the instructions you will see at the react, angular or vue site for the server hosting the api. typically you would start the asp.net core app, then run npm start (after configuring proxy support).
the new launch setting support in msbuild/dotnet.exe allow this to be done for you. the main SPA settings are in project file:
<ItemGroup>
<SpaRoot>ClientApp\</SpaRoot>
<DefaultItemExcludes>$(DefaultItemExcludes);$(SpaRoot)node_modules\**</DefaultItemExcludes>
<SpaProxyServerUrl>https://localhost:44473</SpaProxyServerUrl>
<SpaProxyLaunchCommand>npm start</SpaProxyLaunchCommand>
</ItemGroup>
at the node project root source (at least for react which uses express): ClientApp/src/setupProxy.js is a standard express.js proxy middleware. this file has the default ports for the asp.net core app, but will use env variables set by running the app. you will need to update the routes in here as you add more api routes
so when you run the debug core app, the launch settings are used to get the asp.net core server urls (the proxy ports are from the project file) .
1) msbuild/dotnet.exe injects the spa services dll and starts the app.
2) the app starts the node dev server (npm start) in the ClientApp folder and passes its port numbers and the port number the proxy should use,
there is a little trickery with the browser. first the browser is opened from the asp.net core site with the redirect message.
when the node dev server starts up it replaces the page with its startup page.
note: I only use react and it all works. I've upgrade .net 5 sites to .net 6 with no issues.