- Updates Jest to version 16.0, with an upgraded CLI, improved snapshot testing, new matchers and more. (@chase in #858)
- Test setup file
src/setupTests.js
is now called after test framework initialization to support loading custom matchers. (@just-boris in #846) - Build command shows better instructions for deploying the app to GitHub Pages (@Janpot in #841)
- Build command now generates an asset manifest with mappings from each filename to its final output filename. (@lukyth in #891)
- Build command exits, if there are errors from UglifyJS (@pdillon in #859)
- Eject output is more beautiful now. (@azakordonets in #769)
- Fixes opening the app in a new tab in Chrome. (@unixdev in #831)
- Fixes environment variables not being defined as normal properties of the
process.env
object. (@dvkndn in #807) - Fixes PostCSS autoprefixer not processing CSS files imported with CSS
@import
statements. (@nhunzaker in #929)
- Adds
import/no-webpack-loader-syntax
rule that forbids using custom Webpack specific syntax to specify Webpack loaders in import statements. (@fson in #803) react/react-in-jsx-scope
rule ("React must be in scope") is now an error. (@gaearon in #822)no-unused-expressions
rule now allows the use of short circuit and ternary expressions. (@cannona in #724)
- The preset now detects the Node.js version in test environment and disables unnecessary ES2015 transforms using using
babel-preset-env
. (@shubheksha in #878, @JeffreyATW in #927 ) - Fixes a duplicate dependency on
babel-plugin-transform-regenerator
. (@akofman in #864)
- The error overlay is now disposed after fixing linting errors. (@jarlef in #856)
- Adds support for Webpack 2 to
webpackHotDevClient
. (@michalkvasnicak in #840)
- Adds support for passing a scoped package name to the
--scripts-version
argument. (@pdillon in #826) - Fixes installing pre-release versions using a tarball URL with the
--scripts-version
argument. (@jihchi in #876)
You may optionally update the global command (it’s not required):
npm install -g [email protected]
Inside any created project that has not been ejected, run:
npm install --save-dev --save-exact [email protected]
Jest 16 includes improvements to snapshot testing and changes to the snapshot format. If your project uses snapshot testing, you'll need to update the snapshot files. To update the snapshots, run:
npm test -- -u
- Babel and ESLint configuration is now placed into
package.json
after ejecting. (@montogeek in #773)
Inside any created project that has not been ejected, run:
npm install --save-dev --save-exact [email protected]
Inside any created project that has not been ejected, run:
npm install --save-dev --save-exact [email protected]
Note: If the project fails to start, remove node_modules
, ensure react-scripts
is 0.6.0
in your package.json
, and run npm install
again. There seems to be an npm bug affecting this update.
- Updates
react-dev-utils
dependency
Inside any created project that has not been ejected, run:
npm install --save-dev --save-exact [email protected]
- Adds support for
public
folder with arbitrary assets. (@gaearon in #703) - You can now specify defaults for environment variables with
.env
file. (@ayrton in #695) - Ejecting now generates proper
.babelrc
and.eslintrc
. (@fson in #689, @gaearon in #705) - Some React warnings now include the component stacktrace. (@gaearon in #716)
npm start
doesn’t fail in a composed Docker container. (@arekkas in #711)- The projects generated with
eject
are now cleaner. (@gaearon in #723) - The project is now managed as a monorepo. (@ryanyogan in #419, @fson in #678)
- Published for the first time! (@fson in #689)
- Added
react/no-danger-with-children
andreact/style-prop-object
rules. (@fson in #696)
- Added
README
to npm. There were no other changes.
Inside any created project that has not been ejected, run:
npm install --save-dev --save-exact [email protected]
If you used a global ESLint installation for the editor integration, you’ll need to install these versions of global ESLint packages.
You’ll also need to create a new folder called public
in the root of your project. Then, move index.html
and files it references (such as a favicon) into that folder.
You can no longer reference any files from ./src
in index.html
. Instead, public/index.html
can now only reference files other inside of the public
folder using a special variable called %PUBLIC_URL%
.
For example, instead of:
<link rel="shortcut icon" href="./src/favicon.ico">
You would need to move both index.html
and src/favicon.ico
into the public
folder, and change <link>
to look like this:
<link rel="shortcut icon" href="%PUBLIC_URL%/favicon.ico">
This ensures it become a part of the build output, and resolves correctly both with client-side routing and non-root homepage
in package.json
. Read more about using the public
folder and why these changes were made.
This is a hotfix release for a broken package.
It contained no changes to the code.
- Fixes a packaging issue that affected npm 2. (#676)
Inside any created project that has not been ejected, run:
npm install --save-dev --save-exact [email protected]
- Lint output in editor is now opt-in because, due to this ESLint issue, it is broken by default in Atom. (@fson in #649)
- Fixes an issue causing compile errors when project folder is inside a symlink. (@motiz88 in #648)
- You can now import
jpeg
,wav
,mp3
,m4a
,aac
, andoga
. (@mareksuscak in #624, @danharper in #665) - Fixes false positives caused by the case sensitive import warning on Windows. (@Urthen in #593)
- With Docker,
*.json.gzip
files are no longer created in the project folder. (@thangngoc89 in #620) - Proxy network errors now abort requests instead of hanging. (@cloudmu in #588)
- Connection to the development server does not get interrupted in HTTPS mode. (@dceddia in #652)
- Unsupported Node versions now print a warning. (@fson in #575)
- Importing assets with special characters like
@
now works with tests. (@fson in #584) - Undefined variable lint rule is promoted from a warning to an error. (@gaearon in #669)
- Variables starting with underscore no longer trigger the “unused variable” rule. (@valscion in #640)
- We now print a friendly error when required files are missing. (@vnctaing in #653)
- The output after creating a project is better formatted. (@btnwtn in #629)
- Development server logs are less noisy. (@gaearon in 122068)
- It now runs on early Node versions to print a friendly warning instead of crashing. (@sotojuan in fc3ab4)
- We now print a friendly message when you create a project with invalid name. (@mareksuscak in #628)
- Passing a custom fork of
react-scripts
tocreate-react-app
with--scripts-version
works again. (@yesmeck in #632)
You may optionally update the global command (it’s not required):
npm install -g [email protected]
Inside any created project that has not been ejected, run:
npm install --save-dev --save-exact [email protected]
- We now support (but don’t recommend)
.jsx
file extension. (@tizmagik in #563) - Proxy request errors are now printed to the console. (@cloudmu in #502)
Inside any created project that has not been ejected, run:
npm install --save-dev --save-exact [email protected]
- Breaking Change: Disabled implicit serving of source files in development. (@gaearon in #551)
- You can use
NODE_PATH
environment variable for absoluteimport
paths. (@jimmyhmiller in #476) - If
src/setupTests.js
exists, it will be used to setup the test environment. (@gaelduplessix in #548) - If
HTTPS
environment variable is set totrue
, development server will run in HTTPS mode. (@dceddia in #552)
Inside any created project that has not been ejected, run:
npm install --save-dev --save-exact [email protected]
Paths like /src/somefile.png
used to be served in development, but only by accident. They never worked in production builds. Since 0.4.0, we don’t serve static files by default in development anymore either. This removes a dangerous inconsistency that we never intentionally supported.
If you need a static file to be part for the build, import it from JavaScript and you will get its filename. This ensures it gets included into the production build as well, and its filename contains the content hash.
If you used static files with <link href>
, read this new guide on how to make sure these files get included into the builds. For example, you can replace <link href="/src/favicons/favicon-32.png">
with <link href="./src/favicons/favicon-32.png">
, and then Webpack will recognize it and include it into the build.
If you referenced some other files from index.html
, please file an issue to discuss your use case. In the meantime, you can serve them from a separate static server until your use case is supported.
- Bumps Jest dependency to fix a few issues discovered yesterday. (@cpojer in facebook/jest#1580, @insin in facebook/jest#1574)
Inside any created project that has not been ejected, run:
npm install --save-dev --save-exact [email protected]
- Testing is now supported! (Jest project contributors, @cpojer in #250, @gaearon in #378, #530, #533)
- Static files such as CSS, images, and fonts, can now exist outside
src
directory. (@fson in #504) - Breaking Change: Local paths in
<link href>
inindex.html
will now be correctly resolved, so deletingfavicon.ico
is not an error anymore. (@andreypopp in #428) - Removed an annoying lint rule that warned for
<div ref={node => this.node = node}>
. (@mrscobbler in #529) - Temporarily disabled
react-constant-elements
Babel transform because of its bugs. (@gaearon in #534) - Fixed a permission issue with Docker. (@gaearon in 73c940)
- Fixed an issue with generator syntax in Jest that occurred in an alpha release. (@gaearon in #535)
- You can now create a project in a folder that already contains an
.idea
folder, which is necessary for future WebStorm integration. (@denofevil in #522)
You may optionally update the global command (it’s not required):
npm install -g [email protected]
Inside any created project that has not been ejected, run:
npm install --save-dev --save-exact [email protected]
Now favicon.ico
is not treated specially anymore.
If you use it, move it to src
and add the following line to <head>
in your HTML:
<link rel="shortcut icon" href="./src/favicon.ico">
Since 0.3.0 added a test runner, we recommend that you add it to the scripts
section of your package.json
like this:
// ...
"scripts": {
// ...
"test": "react-scripts test --env=jsdom"
}
Then read the testing guide to learn more about using it!
- You can now proxy requests to an API server without worrying about CORS. (@gaearon in #282)
- You can now pass custom environment variables to your application. (@eliperelman in #342)
- You can now use
async
andawait
syntax. (@gaearon in #327, @fson in #332) - Paths with period in them now load successfully on the development server. (@mxstbr in #422)
- Images with
.webp
extension are now supported. (@gafemoyano in #458) - The most recent version of React is now added to
package.json
. (@wdhorton in #477) - Babel configuration is simplified. (@kripod in #490)
Update react-scripts
to point to 0.2.3
in your package.json
and run npm install
. You shouldn’t need to do anything else.
Newly created projects will use 0.2.3
automatically. You don’t need to update the global create-react-app
CLI itself. It stays at 0.2.0
for now because it doesn’t have any changes.
- When the bundle size changes, we now display the difference after build. (@elijahmanor in #340)
npm install
ing a missing dependency now forces a rebuild. (@gaearon in #349)- Autoprefixer config now includes more commonly supported browsers. (@kripod in #345)
- All the configuration is now documented inline so ejecting doesn’t leave you in the dark. (@gaearon in #362)
Object.assign()
polyfill is now bundled by default. (@gaearon in #399)- React Native Web now works out of the box. (@grigio in #407)
- Same asset filenames in different folders don’t confuse the server now. (@arunoda in #446)
- The
otf
font format is now supported. (@A-gambit in #434) - The
new-cap
linting rule has been disabled thanks to feedback from Immutable.js users. (@rricard in #470)
Update react-scripts
to point to 0.2.2
in your package.json
and run npm install
. You shouldn’t need to do anything else.
Newly created projects will use 0.2.2
automatically. You don’t need to update the global create-react-app
CLI itself. It stays at 0.2.0
for now because it doesn’t have any changes.
- Fixes an issue with
npm start
taking a very long time on OS X with Firewall enabled (@gaearon in #319) - Fixes an issue with Webpack eating a lot of CPU in some cases (@dceddia in #294)
- We now warn if you import a file with mismatched casing because this breaks the watcher (@alexzherdev in #266)
- CSS files specifying
?v=
after asset filenames, such as Font Awesome, now works correctly (@alexzherdev in #298) - Issues with
npm link
ingreact-scripts
have been fixed (@dallonf in #277) - We now use
/static
prefix for assets both in development and production (@gaearon in #278)
Update react-scripts
to point to 0.2.1
in your package.json
and run npm install
. You shouldn’t need to do anything else. If you see a warning about wrong file casing next time you npm start
, fix your imports to use the correct filename casing.
Newly created projects will use 0.2.1
automatically. You don’t need to update the global create-react-app
CLI itself. It stays at 0.2.0
for now because it doesn’t have any changes.
- You can now enable deployment to GitHub Pages by adding
homepage
field topackage.json
(@dhruska in #94) - Development server now runs on
0.0.0.0
and works with VirtualBox (@JWo1F in #128) - Cloud9 and Nitrous online IDEs are now supported (@gaearon in 2fe84e)
- When
3000
port is taken, we offer to use another port (@chocnut in #101, 2edf21) - You can now
import
CSS files from npm modules (@glennreyes in #105, @breaddevil in #178) fetch
andPromise
polyfills are now always included (@gaearon in #235)- Regenerator runtime is now included if you use ES6 generators (@gaearon in #238)
- Generated project now contains
.gitignore
(@npverni in #79, @chibicode in #112) - ESLint config is now more compatible with Flow (@gaearon in #261)
- A stylistic lint rule about method naming has been removed (@mxstbr in #152)
- A few unobtrusive accessibility lint rules have been added (@evcohen in #175)
- A
.babelrc
in parent directory no longer causes an error (@alexzherdev in #236) - Files with
.json
extension are now discovered (@gaearon in a11d6a) - Bug fixes from transitive dependencies are included (#126)
- Linting now works with IDEs if you follow these instructions (@keyanzhang in #149)
- After building, we now print gzipped bundle size (@lvwrence in #229)
- It enforces that you have Node >= 4 (@conorhastings in #88)
- It handles
--version
flag correctly (@mxstbr in #152)
You may optionally update the global command (it’s not required):
npm install -g [email protected]
Inside any created project that has not been ejected, run:
npm install --save-dev --save-exact [email protected]
You may need to fix a few lint warnings about missing <img alt>
tag, but everything else should work out of the box. If you intend to deploy your site to GitHub Pages, you may now add homepage
field to package.json
. If you had issues with integrating editor linter plugins, follow these new instructions.
- Initial public release