The enabled by default statement made sense when the developer was supposed to disable flow in order to use ts. Both those statements in there create some confusion about it in my opinion.
The current `analyze` script only analises the `/src` code. This change leverages new version of `source-map-explorer` that is able to analyse multiple bundles at once, including the 3rd party dependencies bundle which is in my opinion even more important to analyze.
* Revert "Revert "Speed up TypeScript projects (#5903)""
This reverts commit 544a5943ce.
* Move fork-ts-checker dep to react-dev-utils
* Convert WebpackDevServerUtils.createCompiler to take in options arg
* Update README.md for react-dev-utils
* Add forward ref to SVG component
* Write proper component for the ref test
* Add ref to jest svg transform and fix tests
* Fix SVG file location
* Use proper `ref` instead of svgRef in tests
* Add ref to svgr loader
* [docs] Warn about storing secrets in env vars
Fixes#5676
Co-Authored-By: Ian Schmitz <ianschmitz@gmail.com>
* [docs] Add NOT to REACT_APP_SECRET_CODE
Fixes#5676
* [docs] Remove line breaks
As a lot of [people](https://hackernoon.com/why-i-no-longer-use-typescript-with-react-and-why-you-shouldnt-either-e744d27452b4) is complaining about TypeScript performance in CRA, I decided to enable `async` mode in TypeScript checker.
These changes basically brings the JS compilation times to TS projects. So, recompilation took less than 1 second instead of 3 seconds in medium size project.
The problem with async mode is that type-errors are reported after Webpack ends up recompilation as TypeScript could be slower than Babel. PR allows to emit files compiled by Babel immediately and then wait for TS and show type errors in terminal later. Also, if there was no compilation errors and any type error occurs, we trigger a hot-reload with new errors to show error overlay in browser.
Also, I wanted to start a discussion about `skipLibCheck: false` option in default `tsconfig.json`. This makes recompilations really slow and we should consider to set it to `true` or at least give users a big warning to let them know that it could be really slow.
The following video is showing the updated workflow with a forced 2.5 second delay for type-check to give you an idea how it works.

I'm pretty sure that PR needs some polishing and improvements but it should works as it is. Especially a "hack" with reloading the browser after type-check looks ugly to me.
cc @brunolemos as he is an initiator of an original TypeScript PR.
Should fix https://github.com/facebook/create-react-app/issues/5820