build fully specified imports for prod #1377
Merged
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.
Description
This PR uses our build toolchain to create fully specified module imports/exports before we publish production code. This is important because ultimately we are targeting a browser based platform that requires this (see spec details below). We also have a necessary intermediate step of using module bundlers applied by downstream teams which will also need to interop with our module syntax. Making this change allows both platforms to understand our ESM code.
Background information:
This PR purposefully does not update our source code imports directly because TS currently has limited support for this new resolution pattern and the current implementation is gated behind nightly pre-release distribution tags that contain bugs that will not work for us. In the future once the
nodenext
API matures we can switch over to handling this as part of our version controlled source (enforced through typescript compiler) if we want to reduce build complexity.