chore: stop aliasing typescript in dependencies #3623
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.
Aliasing
typescript
totypescript-3.9
results in occasionallysurprising hoisting behavior, in particular using
npm 18
. Inparticular, if two distinct versions of
typescript
are installed,aliasing allows both to be hoisted at the top-level, which results in
ambiguity as to which of them gets to have the
node_modules/.bin/tsc
symlink.
This PR stops aliasing
typescript
totypescript-3.9
and does thenecessary work to ensure builds continue to operate smoothly, menaing
it replaced TypeScript configuration files for jest with plain ESM
configuration files including typed JSDoc comments (for IDE supprot to
continue working as before), as
jest
otherwise usests-node
totransform the configuration files, and
ts-node
uses the "most local"typescript
library to perform this parsing (and unfortunately,typescript@3.9
does not support theES2020
target we are using).This also required allowing
jsii.tsc.types
to be specified in thepackage.json
file of jsii projects, as otherwise the TypeScriptcompiler attempts to load
@types/*
packages that are not compatiblewith
typescript@3.9
(for example,@synclair/typebox
requirestypescript@>=4.5
). This setting is anyway generally useful incomplex monorepo situations.
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.