-
-
Notifications
You must be signed in to change notification settings - Fork 78
Description
Demonstration
const parcelConfig = singleSpaAngular({...})
const parcel1 = mountRootParcel(parcelConfig, {...})
const parcel2 = mountRootParcel(parcelConfig, {...})Expected Behavior
When you mount the same single-spa-angular parcelConfig multiple times, multiple independent parcels should be created.
Actual Behavior
When you mount the same single-spa-angular parcelConfig multiple times, only one of them really works. See more at https://single-spa.slack.com/archives/CGETM8T5X/p1593605815279300
This is caused by the opts object being shared between the parcels, but it containing singleton properties. The properties should be changed to be objects/arrays that allow for multiple values (one for each parcel). Specifically opts.bootstrappedModule should not be a single value, but an array/object with multiple values.
This bug also existed in single-spa-react and was fixed in single-spa/single-spa-react#68. The history of it is that many of the single-spa helper libraries were authored at a time when only single-spa applications existed, instead of parcels. Applications are indeed singletons, which is why there is no issue for them.