You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Solution builder not detecting out of date compiler optionsΒ #62035
In a project using references, suppose you have a tsconfig.json specifying any random option (e.g., skipLibCheck: true).
Run a build using tsc --build ./tsconfig.json.
See output.
Run the build again, this time programmatically using createSolutionBuilder and override one compiler option via getParsedCommandLine in the builder host (e.g., skipLibCheck: false).
Build will be skipped as the builder sees project files are not out of date, but fails to detect that compiler options are not the same used during the last build. We get the same output of the previous run.
Cleaning up .tsbuildinfo files and running the build programmatically again work as expected. New output is different from the first one.
π Expected behavior
I would expect the builder to detect that new compiler options are different from the last used and re-build that project.
Basically, there is where UpToDateStatusType.OutOfDateOptions is reported, but current compiler options are not being compared with the ones from the relative tsbuildinfo file.
Manually changing the tsconfig.json file works because the timestamp of the file changes and not because options are different.
I discovered this while creating a script to address #30511
This is working as intended. Options like skipLibCheck arent allowed on command line with --b which means they arent checked for change if they arent changed without changing timestamp of "configFile" which is what we check.
It adds to cost and these options arent present in buildInfo for "non composite" projects so its not enough but would need to serialize these options in tsbuildinfo for non-incremental as well
Activity
sheetalkamat commentedon Sep 25, 2025
This is working as intended. Options like
skipLibCheckarent allowed on command line with--bwhich means they arent checked for change if they arent changed without changing timestamp of "configFile" which is what we check.ernestostifano commentedon Sep 26, 2025
Sheetal Nandi (@sheetalkamat) but looking at code around
./src/compiler/tsbuildPublic.ts- Line 1606 it seems that we could compare options values, making the caching system way more powerful than it is right now. And it would work both for the CLI and for programmatic APIs.sheetalkamat commentedon Sep 26, 2025
It adds to cost and these options arent present in buildInfo for "non composite" projects so its not enough but would need to serialize these options in tsbuildinfo for non-incremental as well
typescript-bot commentedon Sep 29, 2025
This issue has been marked as "Working as Intended" and has seen no recent activity. It has been automatically closed for house-keeping purposes.