Create React apps (with Typescript) with no build configuration.
- Getting Started – How to create a new app.
- User Guide – How to develop apps bootstrapped with react scripts ts.
Do you know react and want to try out typescript? Or do you know typescript and want to try out react? Get all the benefits from create-react-app
but you use typescript! 🚀
npm install -g create-react-app
create-react-app my-app --scripts-version=react-scripts-ts
cd my-app/
npm start
In general, most upgrades won't require any migration steps to work, but if you experience problems after an upgrade, please file an issue, and we'll add it to the list of migration steps below.
Since 2.16.0
, the template uses different tsconfig
files for both development and production mode. For the latter, unfortunately, the path resolver is not smart enough to fall back to the basic tsconfig.json
in case the expected tsconfig.prod.json
is not present, so you have to create this file manually like shown here.
Since 2.13.0
, typescript
is listed as a peer dependency of react-scripts-ts
. For projects generated with at least this version, the init script takes care of properly installing it as dev dependency to the generated projects. Older projects require manual installation, in case you have not already done that.
Using npm
:
npm i -D typescript
Using yarn
:
yarn add -D typescript
Version 2.5.0
introduces a new config file for jest, that is necessary for the tests to run. If you were previously running a version older than v2.5.0
and upgraded to v2.5.0
or newer, you need to manually add the new file, or else you'll get an error similar to this when trying to run your tests:
Test suite failed to run
{
"messageText": "Cannot read file 'C:\\[project]\\tsconfig.test.json': ENOENT: no such file or directory, open 'C:\\[project]\\tsconfig.test.json'.",
"category": 1,
"code": 5012
}
To fix this, create a new file in the root of the project called tsconfig.test.json
, and paste the content of this file into it. Everything should work now. For more info, please see this issue.