changelogs.md


kaminaly/create-react-app

Repository  -  API  -  Source

3.3.0

DRAFT

Custom Templates

DRAFT

Optional Chaining and Nullish Coalescing Operators

We now support the optional chaining and nullish coalescing operators!

// Optional chaining
a?.(); // undefined if `a` is null/undefined
b?.c; // undefined if `b` is null/undefined

// Nullish coalescing
undefined ?? 'some other default'; // result: 'some other default'
null ?? 'some other default'; // result: 'some other default'
'' ?? 'some other default'; // result: ''
0 ?? 300; // result: 0
false ?? true; // result: false

If your'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; // Is this a billion? a hundred millions? Ten millions?
101475938.38; // what scale is this? what power of 10?

1_000_000_000; // Ah, so a billion
101_475_938.38; // And this is hundreds of millions

3.2.0

October 3, 2019

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

:hammer: Underlying Tools

Committers: 19

3.1.2

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

September 19, 2019

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

:hammer: Underlying Tools

  • 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

3.1.1

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

August 13, 2019

v3.1.1 is a maintenance release that includes minor bug fixes and documentation updates.

:bug: Bug Fix

:nail_care: Enhancement

  • eslint-config-react-app

:memo: Documentation

Committers: 3

3.1.0

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

August 9, 2019

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

:memo: Documentation

:house: Internal

:hammer: Underlying Tools

  • 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

3.0.1

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

May 8, 2019

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
    • #6706 Generate SVG component name in Jest fileTransform (@dallonf)
    • #6300 Remove body padding reset from templates (@Hurtak)

:memo: Documentation

:house: Internal

  • react-scripts
    • #6854 Remove Object.assign from MiniCssExtractPlugin options (@swashcap)

Committers: 12

3.0.0

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

2.1.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

: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)

:hammer: Underlying Tools

  • 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
    • #6701 Remove project property from @typescript-eslint/parser options (@jackwilsdon)
  • 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.