build fully specified imports for prod#1377
Merged
3 commits merged intoMar 17, 2022
Merged
Conversation
Contributor
|
Thanks for including the reference links - I've run into this one but didn't know it's known and being worked on. I should be looking in the Typescript repo more often. Sidebar: The creator of node.js has a youtube presentation talking about node mistakes he regrets and not requiring file extension always was one of them. |
759e3c8 to
a845b78
Compare
a845b78 to
a6a0abf
Compare
andrewberg-okta
approved these changes
Mar 17, 2022
This pull request was closed.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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
nodenextAPI 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.