I took a closer look at I reached the same conclusion as @copleykj, it seems that Ionic components are making assumptions about the underlying build tool when lazy loading the components, and this lazy loading is configured by default. Their approach is different than something like MUI React where each component is atomic and can be imported in isolation regardless of the build tool being used.
It seems that ionic 5 wants to take complete control of the client and then output a static files to be packages either on mobile or as PWAs using their CLI tool. They’re using web components under the hood and have some bindings with react.
In that case I’d recommend using Meteor as a backend and just use SimpleDDP or GraphQl.
Here is an article referencing how the components are loaded, they’re essentially esm modules proxied at the client and loaded on demand. https://stenciljs.com/blog/how-lazy-loading-web-components-work