3.4.1 (2020-03-20)
v3.4.1 is a maintenance release that includes minor bug fixes and documentation updates including upgrading Babel to fix a bug in the 7.8 release line. This release also brings support for TypeScript 3.8.
:bug: Bug Fix
react-scripts
babel-preset-react-app
cra-template
, eslint-config-react-app
, react-scripts
- #7790 Widen eslint-config-react-app peer dependency versions (@lukyth)
:nail_care: Enhancement
cra-template-typescript
, cra-template
react-scripts
:memo: Documentation
- Other
- #8515 Fix proxying API request docs (@hjr3)
- #8561 Indicate that the file structure is the template's (@Vinnl)
react-scripts
babel-preset-react-app
, create-react-app
, react-dev-utils
, react-error-overlay
, react-scripts
react-scripts
Committers: 9
Migrating from 3.4.0 to 3.4.1
Inside any created project that has not been ejected, run:
npm install --save --save-exact react-scripts@3.4.1
or
yarn add --exact react-scripts@3.4.1
3.4.0 (2020-02-14)
v3.4.0 is a minor release that adds new features, including support for SSL and setting PUBLIC_URL
in development. It also includes a fix for Hot Module Reloading with CSS Modules as well as other bug fixes.
:bug: Bug Fix
react-scripts
- #8378 Downgrade style-loader to v0.23.1 due to CSS modules hot reload not working with v1.0.0 and above (@chybisov)
create-react-app
, react-dev-utils
, react-error-overlay
react-dev-utils
cra-template-typescript
, cra-template
cra-template-typescript
:nail_care: Enhancement
react-dev-utils
, react-scripts
cra-template-typescript
cra-template-typescript
, cra-template
react-scripts
- #5845 Add option to provide custom ssl certificates during development (@alexbrazier)
:memo: Documentation
cra-template-typescript
, cra-template
, react-dev-utils
, react-error-overlay
, react-scripts
- Other
react-dev-utils
react-scripts
- Other
Committers: 18
Migrating from 3.3.1 to 3.4.0
Inside any created project that has not been ejected, run:
npm install --save --save-exact react-scripts@3.4.0
or
yarn add --exact react-scripts@3.4.0
3.3.1 (2020-01-31)
v3.3.1 is a maintenance release that includes minor bug fixes and documentation updates.
:bug: Bug Fix
cra-template
react-scripts
babel-preset-react-app
react-dev-utils
:nail_care: Enhancement
react-error-overlay
cra-template-typescript
cra-template-typescript
, cra-template
, react-scripts
create-react-app
cra-template-typescript
, cra-template
eslint-config-react-app
- #7803 Remove error for @typescript-eslint/no-namespace (@szhu)
:memo: Documentation
- Other
babel-preset-react-app
:house: Internal
babel-preset-react-app
, create-react-app
, react-dev-utils
, react-error-overlay
, react-scripts
react-dev-utils
babel-plugin-named-asset-import
create-react-app
, react-app-polyfill
, react-dev-utils
, react-error-overlay
, react-scripts
create-react-app
, react-dev-utils
, react-error-overlay
react-error-overlay
, react-scripts
- #8102 [Security] Update terser webpack plugin (@RDIL)
Committers: 29
Migrating from 3.3.0 to 3.3.1
Inside any created project that has not been ejected, run:
npm install --save --save-exact react-scripts@3.3.1
or
yarn add --exact react-scripts@3.3.1
3.3.0 (2019-12-04)
v3.3.0 is a minor release that adds new features, including custom templates and support for the new optional chaining and nullish coalescing operators.
Custom Templates
You can now create a new app using custom templates.
We've published our existing templates as cra-template
and cra-template-typescript
, but we expect to see many great templates from the community over the coming weeks.
The below command shows how you can create a new app with cra-template-typescript
.
npx create-react-app my-app --template typescript
Note that you can omit the prefix cra-template-
when specifying which template you would like. For TypeScript users, we're deprecating --typescript
in favour of --template typescript
.
If you don't set a template, we'll create your new app with cra-template
- which is just a new name for our base template.
Optional Chaining and Nullish Coalescing Operators
We now support the optional chaining and nullish coalescing operators!
a?.();
b?.c;
undefined ?? 'some other default';
null ?? 'some other default';
'' ?? 'some other default';
0 ?? 300;
false ?? true;
If you're using TypeScript, you will need to upgrade your typescript
dependency to 3.7.0
or later if you wish to use the new operators.
If you're using Visual Studio Code 1.40 (the latest as of this release) or earlier, you will need to configure your editor if you want it to understand the new operators.
If you're using TypeScript in your project and have already upgrade its version as described above, then you can configure VS Code to Use Workspace Version
of TypeScript. If your project isn't using TypeScript, you can use the JavaScript and TypeScript Nightly extension until VS Code releases a newer version including TypeScript 3.7.0
or newer.
Numeric Separators
We've added support for numeric separators to improve readability of numeric literals.
1000000000;
101475938.38;
1_000_000_000;
101_475_938.38;
no-unexpected-multiline
We've removed this rule as it is not compatible with Prettier. If you rely on this rule you can re-enable it by extending our ESLint config and adding the following:
{
"extends": "react-app",
"rules": {
"no-unexpected-multiline": "warn"
}
}
:rocket: New Feature
babel-preset-react-app
- #7438 Add optional chaining and nullish coalescing operators support (@renatoagds)
babel-preset-react-app
, react-dev-utils
cra-template-typescript
, cra-template
, create-react-app
, react-scripts
:boom: Breaking Change
:bug: Bug Fix
eslint-config-react-app
create-react-app
- #7991 Support templates in scoped packages (@klasbj)
- #7839 added check for typescript template and unsupported node version (@awaseem)
react-scripts
react-dev-utils
:nail_care: Enhancement
cra-template-typescript
, cra-template
react-scripts
cra-template
- #7931 No spinning React logo if
prefers-reduced-motion
(@donavon)
create-react-app
, react-error-overlay
babel-preset-react-app
- #7726 Add babel runtime version to transform-runtime plugin to reduce bundle size (@topaxi)
:memo: Documentation
- Other
react-dev-utils
, react-scripts
- #7972 Add placeholders where old template READMEs used to be (@iansu)
babel-preset-react-app
react-dev-utils
react-scripts
:house: Internal
react-scripts
- Other
eslint-config-react-app
- #8003 Use @typescript-eslint/no-unused-expressions to support optional chaining (@maxdavidson)
create-react-app
- #7844 added e2e test for checking typescript template with unsupported node (@awaseem)
- #7882 refactor: remove double coerce (@mrmckeb)
- #7880 Pass through fully specified template name (@iansu)
cra-template-typescript
- #7944 Make base and TypeScript templates consistent (@suprj)
create-react-app
, react-dev-utils
, react-scripts
babel-preset-react-app
, cra-template-typescript
, cra-template
, create-react-app
, react-dev-utils
, react-error-overlay
, react-scripts
create-react-app
, react-dev-utils
, react-scripts
react-app-polyfill
babel-preset-react-app
, react-app-polyfill
, react-dev-utils
, react-scripts
react-scripts
babel-preset-react-app
, cra-template-typescript
, create-react-app
, react-app-polyfill
, react-dev-utils
, react-error-overlay
, react-scripts
react-dev-utils
babel-plugin-named-asset-import
, babel-preset-react-app
, react-error-overlay
, react-scripts
react-error-overlay
, react-scripts
Committers: 42
Migrating from 3.2.0 to 3.3.0
Inside any created project that has not been ejected, run:
npm install --save --save-exact react-scripts@3.3.0
or
yarn add --exact react-scripts@3.3.0
3.2.0 (2019-10-03)
v3.2.0 is a minor release that adds support for production profiling and ignoring TypeScript type errors to make migrating JavaScript projects to TypeScript easier. It also includes other minor bug fixes and documentation updates.
:rocket: New Feature
react-scripts
react-dev-utils
, react-scripts
:bug: Bug Fix
react-scripts
react-app-polyfill
- #7205 Guard polyfills against window possibly being undefined (@jxom)
:nail_care: Enhancement
react-scripts
react-dev-utils
:memo: Documentation
- #7302 docs: note that 2 to 3 migration may require deletion of node_modules (@kimpers)
- #7757 Documentation typo fix: accessbile→accessible (@tomer)
- #7601 [Documentation] Updated list of supported Jest config overrides (@neilbryson)
- #7705 Update runtime chunk name separator in docs (@samuelmeuli)
:house: Internal
react-scripts
react-dev-utils
, react-scripts
Committers: 19
Migrating from 3.1.2 to 3.2.0
Inside any created project that has not been ejected, run:
npm install --save --save-exact react-scripts@3.2.0
or
yarn add --exact react-scripts@3.2.0
3.1.2 (2019-09-19)
v3.1.2 is a maintenance release that includes minor bug fixes and documentation updates.
:bug: Bug Fix
react-scripts
babel-preset-react-app
, react-error-overlay
, react-scripts
:nail_care: Enhancement
:memo: Documentation
:house: Internal
babel-plugin-named-asset-import
, confusing-browser-globals
, react-app-polyfill
, react-dev-utils
, react-error-overlay
, react-scripts
react-scripts
eslint-config-react-app
, react-scripts
Committers: 20
Migrating from 3.1.1 to 3.1.2
Inside any created project that has not been ejected, run:
npm install --save --save-exact react-scripts@3.1.2
or
yarn add --exact react-scripts@3.1.2
3.1.1 (2019-08-13)
v3.1.1 is a maintenance release that includes minor bug fixes and documentation updates.
:bug: Bug Fix
:nail_care: Enhancement
:memo: Documentation
Committers: 3
Migrating from 3.1.0 to 3.1.1
Optionally remove Disallow: /static/
from public/robots.txt
if you want to allow your images and other static files to be indexed by search engines #7508
Inside any created project that has not been ejected, run:
npm install --save --save-exact react-scripts@3.1.1
or
yarn add --exact react-scripts@3.1.1
3.1.0 (2019-08-09)
v3.1.0 is a minor release that adds ESLint 6 support as well as experimental support for extended and customizing the ESLint config along with other minor bug fixes and documentation updates. The upgrade to ESLint 6 is a breaking change only if you're using eslint-config-react-app
or react-error-overlay
outside of Create React App.
Highlights
- ESLint 6: #7415
- Experimental ESLint config customization: #7036
- More Jest config options: #6055
- Option to configure or disable image inlining: #6060
:rocket: New Feature
eslint-config-react-app
, react-error-overlay
, react-scripts
eslint-config-react-app
, react-scripts
react-dev-utils
react-scripts
:boom: Breaking Change
eslint-config-react-app
, react-error-overlay
, react-scripts
:bug: Bug Fix
react-dev-utils
- #7444 Fix for #6720: HMR not working in Firefox if proxy option present (@dmile)
react-scripts
eslint-config-react-app
react-error-overlay
, react-scripts
- #7257 Upgrade webpack to 4.35.0 to fix dynamic import issue (@iansu)
:nail_care: Enhancement
react-scripts
react-dev-utils
eslint-config-react-app
, react-error-overlay
, react-scripts
eslint-config-react-app
- #7179 Disabled Typescript no-undef rule per typescript-eslint #477 (@andyhopp)
create-react-app
:memo: Documentation
- Other
eslint-config-react-app
react-error-overlay
, react-scripts
:house: Internal
babel-preset-react-app
- #5818 Remove unused dependencies in babel-preset-react-app (@iansu)
- #7208 Use correct babel transform for dynamic import in dependencies (@jamesknelson)
react-scripts
- Other
react-error-overlay
, react-scripts
babel-plugin-named-asset-import
, babel-preset-react-app
, confusing-browser-globals
, create-react-app
, react-app-polyfill
, react-dev-utils
, react-error-overlay
, react-scripts
eslint-config-react-app
, react-error-overlay
, react-scripts
eslint-config-react-app
, react-scripts
react-scripts
react-dev-utils
Committers: 46
Migrating from 3.0.1 to 3.1.0
Inside any created project that has not been ejected, run:
npm install --save --save-exact react-scripts@3.1.0
or
yarn add --exact react-scripts@3.1.0
3.0.1 (2019-05-08)
v3.0.1 is a maintenance release that adjusts some ESLint rules for TypeScript along with other minor bug fixes and documentation updates.
:boom: Breaking Change
babel-preset-react-app
- #6887 Update dependencies of Babel preset with recent changes (@skoging)
:bug: Bug Fix
react-error-overlay
, react-scripts
eslint-config-react-app
eslint-config-react-app
, react-scripts
react-dev-utils
- #6876 Change cssmodule classname hash to use relative paths (@vg-stan)
:nail_care: Enhancement
react-dev-utils
, react-scripts
babel-preset-react-app
- #6887 Update dependencies of Babel preset with recent changes (@skoging)
react-scripts
:memo: Documentation
:house: Internal
react-scripts
- #6854 Remove
Object.assign
from MiniCssExtractPlugin
options (@swashcap)
Committers: 12
Migrating from 3.0.0 to 3.0.1
Inside any created project that has not been ejected, run:
npm install --save --save-exact react-scripts@3.0.1
or
yarn add --exact react-scripts@3.0.1
3.0.0 (April 22, 2019)
Create React App 3.0 brings some exciting new features including support for Hooks!
Thanks to all the maintainers and contributors who worked so hard on this release! :tada:
Highlights
- Jest 24: #6278
- Hooks support: #5997
- TypeScript linting: #6513
browserslist
support in @babel/preset-env: #6608
- Absolute imports using
jsconfig.json
/tsconfig.json
: #6656
Migrating from 2.1.x to 3.0.0
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
NOTE: You may need to delete your node_modules
folder and reinstall your dependencies by running yarn
(or npm install
) if you encounter errors after upgrading.
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 structure in asset-manifest.json
All asset paths have been moved under the files
key in asset-manifest.json
.
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.
Detailed Changelog
:rocket: New Feature
react-scripts
babel-plugin-named-asset-import
, confusing-browser-globals
, react-dev-utils
, react-error-overlay
, react-scripts
eslint-config-react-app
, react-scripts
babel-preset-react-app
, eslint-config-react-app
, react-scripts
babel-preset-react-app
, react-dev-utils
, react-scripts
:boom: Breaking Change
react-scripts
babel-preset-react-app
, react-app-polyfill
babel-plugin-named-asset-import
, confusing-browser-globals
, react-dev-utils
, react-error-overlay
, react-scripts
eslint-config-react-app
, react-scripts
babel-preset-react-app
, eslint-config-react-app
, react-scripts
babel-preset-react-app
, react-dev-utils
, react-scripts
:bug: Bug Fix
react-dev-utils
react-scripts
create-react-app
:nail_care: Enhancement
react-scripts
babel-plugin-named-asset-import
, babel-preset-react-app
, confusing-browser-globals
, create-react-app
, eslint-config-react-app
, react-app-polyfill
, react-dev-utils
, react-error-overlay
, react-scripts
babel-preset-react-app
, react-app-polyfill
create-react-app
react-dev-utils
:memo: Documentation
:house: Internal
- Other
react-scripts
- #6313 Update testMatch to also be compatible with Jest 24 (@ngbrown)
- #4176 Remove --coverage + --watch workaround for the test command (@stipsan)
- #6655 Change app component declaration from arrow function to regular function (@iansu)
- #6625 change named import into default import (@xiaoxiangmoe)
- #6621 make compiler a const not a let (@Primajin)
babel-plugin-named-asset-import
, confusing-browser-globals
, react-dev-utils
, react-error-overlay
, react-scripts
react-dev-utils
eslint-config-react-app
- #6662 Sync version of babel-eslint in eslint-config-react-app for react-scripts V3 (@dalcib)
react-scripts
babel-plugin-named-asset-import
, babel-preset-react-app
, confusing-browser-globals
, create-react-app
, eslint-config-react-app
, react-app-polyfill
, react-dev-utils
, react-error-overlay
, react-scripts
babel-preset-react-app
babel-preset-react-app
, react-dev-utils
, react-error-overlay
, react-scripts
react-dev-utils
- #6739 Update fork-ts-checker-webpack-plugin out of alpha (@pelotom)
eslint-config-react-app
eslint-config-react-app
, react-scripts
- #6653 Unpin eslint-config-react-hooks dependency (@iansu)
babel-preset-react-app
, eslint-config-react-app
, react-scripts
babel-preset-react-app
, create-react-app
, react-app-polyfill
, react-dev-utils
, react-error-overlay
, react-scripts
Committers: 49
Releases Before 3.x
Please refer to CHANGELOG-2.x.md for earlier versions.