Split modules to facilitate custom builds #172
Closed
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.
mixpanel-browser
is the largest dependency we have in our web application. We aren't using all of the functionality, notably notifications. Although that feature can be turned off, the code is still included in the bundle. There may be other users that have custom features sets, like those not using the people functionality.I've seen discussions about potentially making this library more modular. This PR is to help facilitate this through a series of refactors. These are simple mechanical splitting out of
mixpanel-core.js
into smaller modules, so I've left the commits unsquashed so it's easier to see the refactors one-at-a-time.The last commit introduces a custom bundle that excludes notifications, saving 44 KB. Our application bundle can use a Webpack alias to swap in that custom bundle.