[major]76299208e6:
- Drop ES5 from all the flow modules
Dropping CJS support in all @atlaskit packages
As a breaking change, all @atlaskit packages will be dropping cjs distributions and will only
distribute esm. This means all distributed code will be transpiled, but will still contain
import
and export
declarations.
The major reason for doing this is to allow us to support multiple entry points in packages, e.g:
import colors from `@atlaskit/theme/colors`;
Previously this was sort of possible for consumers by doing something like:
import colors from `@atlaskit/theme/dist/esm/colors`;
This has a couple of issues. 1, it treats the file system as API making internal refactors harder,
we have to worry about how consumers might be using things that aren't actually supposed to be
used. 2. We are unable to do this internally in @atlaskit packages. This leads to lots of
packages bundling all of theme, just to use a single color, especially in situations where tree
shaking fails.
To support being able to use multiple entrypoints internally, we unfortunately cannot have
multiple distributions as they would need to have very different imports from of their own
internal dependencies.
ES Modules are widely supported by all modern bundlers and can be worked around in node
environments.
We may choose to revisit this solution in the future if we find any unintended condequences, but
we see this as a pretty sane path forward which should lead to some major bundle size decreases,
saner API's and simpler package architecture.
Please reach out to #fabric-build (if in Atlassian) or create an issue in
Design System Support (for
external) if you have any questions or queries about this.