Statically import SockJS in both modern and legacy bundles. #9985
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Not including
SockJS
in the modern JS bundle was a nice bundle size savings (28KB before gzip), butSockJS
works better than a nativeWebSocket
for clients that are stuck in unusual networking situations, and the fallback of using dynamicimport()
to loadSockJS
when the nativeWebSocket
failed was much slower than simply includingSockJS
in the bundle and using it from the start.Moreover, the new
meteor create --minimal
starter app does not usesocket-stream-client
(nor DDP), so going back to includingSockJS
in both the modern and the legacy bundles should have no impact on the minimal modern bundle size.If you want to continue using a native
WebSocket
instead ofSockJS
, you can always pin the older version of the socket-stream-client package:Once this change is published, the workaround I suggested to @p3pp8 here will no longer be necessary: #9917 (comment)