Reduce building types time by caching old types #152
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.
Issues
Emitting types takes a long time. it took twice as long as bundling
Features
Related tweets
Important notes
incremental
flag to cache last computation.incremental
cannot be used in CLI => addtsconfig.types.json
to emit typesnpm run build
, it leads to this command is executedrimraf dist
, which means cache will be cleared =>incremental
flag have no effect=> solution: write custom
scripts/clearBuildFolder.js
script to keep.d.ts
,tsconfig.types.tsbuildinfo
and.npmignore
tsconfig.types.tsbuildinfo
appear indist
folder, which will be shipped to npm registrydist/tsconfig.types.tsbuildinfo
to.npmignore
at root of project => The reason is we whitelistdist
by fieldfiles
inpackage.json
.files
have highest priority=> I have to add
tsconfig.types.tsbuildinfo
todist/.npmignore
=> npm ignore when publish to registrydist
folder is ignored by.gitignore
=> I have to temporary un-ignoredist
folder to commitdist/.npmignore
Concerns
=> Possible solution:
latest
versionReference
https://github.com/microsoft/TypeScript/wiki/Performance#incremental-project-emit