Make prepack scripts more consistent #1020
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.
Somewhere between Typescript 3.5.x and 4.0.x, the behavior of the
compiler changed in a subtle way when using the
-b
flag.In 3.5.x, if
outDir
was removed after a build buttsconfig.tsbuildinfo
remained, runningtsc -b
again would fullyreproduce
outDir
. Technically, this is incorrect behavior because thecompiler state should be fully derived from the
include
/rootDir
files and the
tsconfig.tsbuildinfo
file.In 4.0.x,
outDir
is not reproduced because the compiler properly loadsits state from
tsconfig.tsbuildinfo
and does not perform anyrecompilation.
Why did this affect
packages/plugins
? Theprepack
script runsrimraf lib && tsc -b
. In the 3.5.x compiler version, this wouldreproduce the
lib
directory. In 4.0.x, it would not. This, thepackaged set of files does not include the
lib
directory.This commit makes
prepack
scripts more consistent by usingnpm run clean
andnpm run build
. Theclean
scripts already properly cleanup both
outDir
and thetsconfig.tsbuildinfo
file.