Experiment with storing output timestamps in .tsbuildinfo #46677
Description
Occasionally, TypeScript makes the choice not to write output files in --watch mode if the output is the same as what's on disk; however, this causes complications with --incremental. Under --incremental, --watch still needs to update each output file's timestamps so that a subsequent invocation of tsc --build will avoid rebuilding certain files. See more here: 7b290fd.
One concern with this is that it causes issues with downstream tooling - messing with output files that wouldn't have been rewritten causes issues for tools that want to be more incremental as well. See #46661.
Another concern is that this causes a bunch of file-touching anyway which can potentially be slow. It's not clear whether this is really a bottleneck, but there is some discussion in #45082 around issues here, and it may warrant some investigation.
We should investigate book-keeping with .tsbuildinfo to avoid manually touching timestamps every time.
Activity
jfstephe commentedon Nov 9, 2021
Note: A potential further consideration may be around browser caching of the output files. If the modified time of the file changes then browsers may not cache the unchanged file. Just trying to add weight to this really painful issue (for us).
DanielRosenwasser commentedon Nov 15, 2021
Ron Buckton (@rbuckton) try tackling this soon in the 4.6 cycle, loop Jake Bailey (@jakebailey), Andrew Casey (@amcasey), and me in reviews.