This Gist works for CRA 3. For CRA 4, you can try community maintained craco plugin for converting to a single-spa application at https://github.com/hasanayan/craco-plugin-single-spa-application (thanks @hasanayan):
- Install react-app-rewired, as explained in https://github.com/timarney/react-app-rewired.
- Create a file in src called
single-spa-entry.js
(or tsx for typescript) - Modify config-overrides.js, as shown in the config-overrides.js file provided in this gist.
- (Optional) remove src/main.js, since single-spa-entry is the new entry
- (Optional) remove public/index.html, since single-spa applications share a single html file, instead of one html file per project.
create-react-app does use webpack dev server, see https://github.com/facebook/create-react-app/blob/bdae9b6874904cf34b982c540847e3d6c32cdf42/packages/react-scripts/scripts/start.js#L37. However, modifying the webpack-dev-server has to be done with a special syntax (docs) that I was unaware of. I have updated the original gist and pushed this example that shows it working.