Skip to content

Update dependency react-scripts to v3

Mend Renovate requested to merge renovate/react-scripts-3.x into master

This MR contains the following updates:

Package Type Update Change References
react-scripts devDependencies major 2.1.8 -> 3.0.0 source

Release Notes

facebook/create-react-app

v3.0.0

Compare Source

Inside any created project that has not been ejected, run:

npm install --save --save-exact react-scripts@3.0.0

or

yarn add --exact react-scripts@3.0.0

If you previously ejected but now want to upgrade, one common solution is to find the commits where you ejected (and any subsequent commits changing the configuration), revert them, upgrade, and later optionally eject again. It’s also possible that the feature you ejected for is now supported out of the box.

Breaking Changes

Like any major release, react-scripts@3.0.0 contains a few breaking changes. We expect that they won't affect every user, but we recommend you look over this section to see if something is relevant to you. If we missed something, please file a new issue.

Jest 24

We've updated from Jest 23 to get the latest improvements in Jest 24. We've noticed some differences in snapshot serialization in Jest 24, so you may need to adjust your tests slightly once you update. You can read more about what's changed in the Jest 24 blog post.

Hooks support

We now enforce Rules of Hooks with eslint-plugin-react-hooks. If you are breaking any of the rules of Hooks this will cause your build to fail.

TypeScript linting

We now lint TypeScript files. You can see the list of rules we enforce to check if your project is compatible. If you're using Visual Studio Code you can follow our guide to setup up your editor to display lint warnings.

browserslist support in @​babel/preset-env

The browserslist config in your package.json is now used to control the output of your JavaScript files. You can use separate configuration for development and production. See here for a good starting point which gives a good development experience, especially when using language features such as async/await, but still provides high compatibility with many browsers in production

Remove --no-watch flag

We've removed the --no-watch flag from the start script in favor of Jest's own --watchAll=false.

New Features

using jsconfig.json/tsconfig.json

We now support setting baseUrl in jsconfig.json and tsconfig.json. To configure baseUrl to point to the src directory in your JavaScript project, create a jsconfig.json file in your project root:

{
  "compilerOptions": {
    "baseUrl": "src"
  },
  "include": ["src"]
}

If you have a TypeScript project you can configure baseUrl the same way in your tsconfig.json.

Currently the only supported options for baseUrl are node_modules (the default) and src.

PostCSS Normalize

You can now include a version of Normalize.css in your project that will use your browserslist setting to generate the appropriate styles for your target browsers. To include it simply add @import-normalize at the top of one of your CSS files.


Renovate configuration

📅 Schedule: At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever MR becomes conflicted.

🔕 Ignore: Close this MR and you won't be reminded about this update again.


  • If you want to rebase/retry this MR, check this box

This MR has been generated by Renovate Bot. View repository job log here.

Edited by Mend Renovate

Merge request reports