Please refer to CHANGELOG-1.x.md for the 1.x range, and CHANGELOG.md for the newer versions.
-
react-scripts
- #1783 Work around Node 7.7.2 bug that crashes
npm start
. (@ryanwalters)
- #1783 Work around Node 7.7.2 bug that crashes
-
eslint-config-react-app
-
react-scripts
- Andres Suarez (zertosh)
- Ben Alpert (spicyj)
- Joe Haddad (Timer)
- Leo Lamprecht (leo)
- Lorenzo Palmes (lpalmes)
- Ryan Walters (ryanwalters)
Inside any created project that has not been ejected, run:
npm install --save-dev --save-exact [email protected]
-
create-react-app
-
react-scripts
-
react-dev-utils
-
#1690 Fix
openBrowser()
whenBROWSER=open
on macOS. (@bpierre) -
#1696 Improve reliability of port detection. (@chrisdrackett)
-
-
eslint-config-react-app
,react-scripts
-
#1705 Add support for
ignoreRestSiblings
inno-unused-vars
. (@chrisdrackett)Linter no longer warns when using rest properties to remove variables from an object.
-
-
react-dev-utils
,react-scripts
- #1726 Extract generic build functions into
react-dev-utils
. (@viankakrisna)
- #1726 Extract generic build functions into
-
Other
react-scripts
react-scripts
eslint-config-react-app
eslint-config-react-app
,react-dev-utils
,react-scripts
react-dev-utils
- Other
- #1723 Skip AppVeyor CI builds for Markdown changes. (@gaearon)
- #1707 Add double quotes to escape spaces in paths in e2e. (@viankakrisna)
- #1688 Upgrade
lerna
version. (@viankakrisna)
- Ade Viankakrisna Fadlil (viankakrisna)
- Bond (bondz)
- Chris Drackett (chrisdrackett)
- Dan Abramov (gaearon)
- Joe Haddad (Timer)
- Mato Ilic (matoilic)
- Myk Klemme (mklemme)
- Pierre Bertet (bpierre)
- Ryan Platte (replaid)
- Travis Giggy (tgig)
- Valerii Sorokobatko (tuchk4)
Inside any created project that has not been ejected, run:
npm install --save-dev --save-exact [email protected]
You may also optionally update the global command-line utility for scoped package support:
npm install -g [email protected]
-
create-react-app
If you are using Yarn, and you have created at least one app previously, Create React App now works offline.
-
react-scripts
-
create-react-app
- #1675 Delete project folder on failed installation on Windows. (@johann-sonntagbauer)
- #1662 Validate project name before creating a project. (@johann-sonntagbauer)
- #1669 Make sure React dependencies aren’t pinned in new projects. (@johann-sonntagbauer)
-
react-scripts
- #1677 Add
X-FORWARDED
headers for proxy requests. (@johann-sonntagbauer)
- #1677 Add
-
react-scripts
- #1657 Tweak the Visual Studio Code debugging guide. (@ryansully)
- Dan Abramov (gaearon)
- Joe Haddad (Timer)
- Johann Hubert Sonntagbauer (johann-sonntagbauer)
- Ryan Sullivan (ryansully)
- Simon Vocella (voxsim)
Inside any created project that has not been ejected, run:
npm install --save-dev --save-exact [email protected]
You may also optionally update the global command-line utility for offline Yarn cache support:
npm install -g [email protected]
-
create-react-app
-
#1253 Install time optimization. (@n3tr)
React, ReactDOM, and
react-scripts
are now installed in the same install instead of two different installs. This reduces app creation time by a noticeable amount. -
#1512 Graceful error handling. (@chitchu)
If an error occurs while
create-react-app
is running, it will now clean up and not leave a broken project to reduce confusion. -
#1193 Suggest upgrading to NPM >= 3 for faster install times. (@mobinni)
-
#1603 Allow app creation in a WebStorm project. (@driquelme)
-
#1570 Allow git urls in
--scripts-version
. (@tomconroy)
-
-
react-scripts
-
#1578 Enable lint caching in development. (@viankakrisna)
-
#1478 Update the build script message to show the correct port. (@chyipin)
-
#1560 Bump
recursive-readdir
. (@wtgtybhertgeghgtwtg)
-
-
react-scripts
-
#1635 Fix Jest configuration. (@Timer)
Fixes ejecting on Windows for macOS and Linux machines.
-
#1356 Fix workflow if react-scripts package is linked via npm-link. (@tuchk4)
Advanced users may opt to fork
react-scripts
instead of ejecting so they still receive upstream updates.
react-scripts
will now function as expected when linking to a development version.
Previously, you could not test changes with an existing application via linking. -
#1585 Ensure PORT environment variable is an integer. (@matoilic)
-
#1628 Show correct port for pushstate-server URL text. (@mattccrampton)
-
- User Guides
- #1391 Add note how to resolve missing required files for Heroku. (@sbritoig)
- #1577 Add a how-to on
react-snapshot
. (@superhighfives) - #1121 Add documentation for customizing Bootstrap theme. (@myappincome)
- #1540 Document debugging in Visual Studio Code. (@bondz)
- #1618 Add note about when to import Bootstrap CSS. (@joewoodhouse)
- #1518 Update flow configuration documentation. (@SBrown52)
- #1625 Specify that NODE_ENV is set to 'production' during the build step. (@mderazon)
- #1573 Update Jest documentation links. (@mkermani144)
- #1564 Add --recursive to Sass watch script. (@aleburato)
- #1561 Use https in link in documentation. (@dariocravero)
- #1562 Update
jest-enzyme
documentation. (@kiranps) - #1543 Update CSS preprocessor instructions. (@aleburato)
- #1338 Add link to Azure deployment tutorial. (@tpetrina)
- #1320 Document how to disable autoprefix feature. (@rrubas)
- #1313 List features beyond ES6 supported by create-react-app. (@jonathanconway)
- #1008 Add Saas support documentation. (@tsironis)
- #994 Suggest
jest-enzyme
for simplifying test matchers. (@blainekasten) - #1608 Add note for using CHOKIDAR_USEPOLLING in virtual machines to enable HMR. (@AJamesPhillips)
- #1495 Add useful link to react-scripts. (@pd4d10)
- READMEs
- #1576 Switch from Neo to Neutrino. (@eliperelman)
- #1275 Suggest yarn commands in addition to npm. (@lifez)
babel-preset-react-app
- #1598 Remove redundant babel-plugin-transform-es2015-parameters. (@christophehurpeau)
- Other
- #1534 Use yarn@latest in e2e. (@gaearon)
- #1295 Make node version check more robust in e2e. (@pugnascotia)
- #1503 Fix
test -e
in e2e. (@igetgames)
- Ade Viankakrisna Fadlil (viankakrisna)
- Alessandro Burato (aleburato)
- Alexander James Phillips (AJamesPhillips)
- Blaine Kasten (blainekasten)
- Bond (bondz)
- Charlie Gleason (superhighfives)
- Christophe Hurpeau (christophehurpeau)
- Dan Abramov (gaearon)
- Daniel Riquelme (driquelme)
- Darío Javier Cravero (dariocravero)
- Dimitris Tsironis (tsironis)
- Eli Perelman (eliperelman)
- Jirat Ki. (n3tr)
- Joe Haddad (Timer)
- Joe Woodhouse (joewoodhouse)
- Jonathan Conway (jonathanconway)
- Marcus R. Brown (igetgames)
- Mato Ilic (matoilic)
- Matt Crampton (mattccrampton)
- Michael DeRazon (mderazon)
- Mo Binni (mobinni)
- Mohammad Kermani (mkermani144)
- Phawin Khongkhasawan (lifez)
- Roman Rubas (rrubas)
- Rory Hunter (pugnascotia)
- Tom Conroy (tomconroy)
- Toni Petrina (tpetrina)
- Valerii Sorokobatko (tuchk4)
- Vicente Jr Yuchitcho (chitchu)
- SBrown52
- chyipin
- myappincome
- sbritoig
- wtgtybhertgeghgtwtg
- kiran ps (kiranps)
- pd4d10 (pd4d10)
Note: 0.9.1 had known issues so you should skip it.
Inside any created project that has not been ejected, run:
npm install --save-dev --save-exact [email protected]
You may also optionally update the global command-line utility for more efficient installs (thanks @n3tr):
npm install -g [email protected]
This release has known issues and you should skip it. Update directly to 0.9.2 instead.
Thanks to @Timer for cutting this release.
-
react-scripts
-
#1489 Support setting
"homepage"
to"."
to generate relative asset paths. (@tibdex)Applications that don’t use the HTML5
pushState
API can now be built to be served from any relative URL. To enable this, specify"."
as yourhomepage
setting inpackage.json
. It used to be possible before with a few known bugs, but they should be fixed now. See Serving the Same Build from Different Paths. -
#937 Add
PUBLIC_URL
environment variable for advanced use. (@EnoahNetzach)If you use a CDN to serve the app, you can now specify
PUBLIC_URL
environment variable to override the base URL (including the hostname) for resources referenced from the built code. This new variable is mentioned in the new Advanced Configuration section. -
#1440 Make all
REACT_APP_*
environment variables accessible inindex.html
. (@jihchi)This makes all environment variables previously available in JS, also available in the HTML file, for example
%REACT_APP_MY_VARIABLE%
. See Referencing Environment Variables in HTML.
-
-
react-dev-utils
-
#1148 Configure which browser to open with
npm start
. (@GAumala)You can now disable the automatic browser launching by setting the
BROWSER
environment variable tonone
. You can also specify a different browser (or an arbitrary script) to open by default, as supported byopn
command that we use under the hood. See Advanced Configuration.
-
-
react-scripts
-
#1311 Updated
babel-jest
andjest
packages to 18.0.0. (@lopezator)Jest has been updated to 18 and has introduced some breaking changes and new features.
-
react-scripts
,react-dev-utils
-
#1264 Remove interactive shell check when opening browser on start. (@CaryLandholt)
Non-interactive terminals no longer automatically disable launching of the browser. Instead, you need to specify
none
asBROWSER
environment variable if you wish to disable it.
-
-
react-scripts
-
#1441 Added
babel-runtime
dependency to deduplicate dependencies when using Yarn. (@jkimbo)This works around a bug in Yarn that caused newly created projects to be over 400MB. Now they are down to 126MB, just like with npm 3.
-
#1458 Additionally remove
react-scripts
from dependencies on eject. (@creynders) -
#1309 Bump
babel-loader
version (#1009). (@frontsideair) -
#1267 Only gitignore directories in root, not deep. (@jayphelps)
-
-
react-dev-utils
-
react-scripts
- #1496 Make build exit with error code when interrupted. (@brandones)
- #1352 More descriptive error message for
env.CI = true
warnings causing failures. (@jayphelps) - #1264 Remove interactive shell check when opening browser on start. (@CaryLandholt)
- #1311 Updated
babel-jest
andjest
packages to 18.0.0. (@lopezator) - #1432 Bump Jest version. (@gaearon)
- #1507 fix: add yarn gitignores. (@adjohnson916)
- #1510 Add missing
'\n'
to the end ofpackage.json
file. (@pd4d10) - #1324 Use npm script hooks to avoid
&&
in deploy script. (@zpao)
-
create-react-app
- #1270 gh-1269: Enabling nested folder paths for project name. (@dinukadesilva)
-
User Guide
- #1515 readme: Advanced Configuration. (@Timer)
- #1513 clarifying the use of custom environment variables. (@calweb)
- #1511 Change "OS X" references to "macOS". (@RodrigoHahn)
- #1482 Edit User Guide: Add ESLint config for VS Code users. (@vulong23)
- #1483 Reflect websocket proxy support on README (#1013). (@frontsideair)
- #1453 Readme: Removes experimental from Jest snapshot. (@frehner)
- #1437 Added links to tutorials for integrating cra with an api backend. (@alexdriaguine)
- #1422 Add causes of dev server not detecting changes. (@jetpackpony)
- #1260 Heroku Deployment: Adds a note on how to resolve "File/Module Not Found Errors" . (@MsUzoAgu)
- #1256 Add "Changing the Page Title" to User Guide. (@gaearon)
- #1245 Replace the Flow documentation section. (@gaearon)
- #1514 corrected minor typo. (@crowchirp)
- #1393 replace two space syntax with br tag. (@carlsagan21)
- #1384 Document Flow support. (@dschep)
-
READMEs
- #1375 Change console.log for errors and warnings. (@jimmyhmiller)
- #1369 Add missing import in react-dev-utils README.md. (@pedronauck)
-
Internal Test Suite
- #1519 Add test cases for PUBLIC_URL and relative path. (@Timer)
- #1484 Improve e2e-kitchensink and Jest coverage. (@Timer)
- #1463 Minor code style and wrong expect. (@tuchk4)
- #1470 E2e jsdom fix. (@EnoahNetzach)
- #1187 Use a more sophisticated template for end-to-end testing.. (@EnoahNetzach)
-
Other
- #1289 Remove path-exists from dependencies and replace it with fs.existsSync. (@halfzebra)
- Alex Driaguine (alexdriaguine)
- Anders D. Johnson (adjohnson916)
- Anthony F. (frehner)
- Brandon Istenes (brandones)
- Calvin Webster (calweb)
- Cary Landholt (CaryLandholt)
- Chandan Rai (crowchirp)
- Christian Raidl (Chris-R3)
- Dan Abramov (gaearon)
- Daniel Schep (dschep)
- David (lopezator)
- Dinuka De Silva (dinukadesilva)
- Eduard Kyvenko (halfzebra)
- Fabrizio Castellarin (EnoahNetzach)
- Fatih (frontsideair)
- Gabriel Aumala (GAumala)
- Jay Phelps (jayphelps)
- Jih-Chi Lee (jihchi)
- Jimmy Miller (jimmyhmiller)
- Joe Haddad (Timer)
- Johnny Magrippis (jmagrippis)
- Jonathan Kim (jkimbo)
- MUA (MsUzoAgu)
- Matthew Holloway (holloway)
- Nguyen Le Vu Long (vulong23)
- Paul O’Shannessy (zpao)
- Pedro Nauck (pedronauck)
- Robbie H (TheBlackBolt)
- Thibault Derousseaux (tibdex)
- Valerii (tuchk4)
- Vasiliy Taranov (jetpackpony)
- RodrigoHahn
- creynders (creynders)
- pd4d10 (pd4d10)
- soo (carlsagan21)
Inside any created project that has not been ejected, run:
npm install --save-dev --save-exact [email protected]
Then, run your tests. If you are affected by breaking changes from Jest 18, consult blog post, changelog, and documentation. You might need to update any snapshots since their format might have changed.
If you relied on the browser not starting in non-interactive terminals, you now need to explicitly specify BROWSER=none
as an environment variable to disable it.
Thanks to @fson for cutting this release.
-
create-react-app
,react-scripts
- Ville Immonen (fson)
Inside any created project that has not been ejected, run:
npm install --save-dev --save-exact [email protected]
You may also optionally update the global command-line utility:
npm install -g [email protected]
-
react-scripts
-
#1233 Disable subresource integrity temporarily. (@Timer)
We added Subresource Integrity checks to the build output in 0.8.2 but it turns out that they may fail in browsers using special compression proxies, such as Chrome on Android, when served over HTTP. We disabled the checks until we can find a safe way to add them.
-
-
react-dev-utils
-
create-react-app
Fixes noisy output on Windows when Yarn is not installed.
-
react-scripts
-
#1237 Clear scrollback in test mode. (@gaearon)
Ensures test watcher clears the console before running.
-
#1229 Disable jest watch mode when --coverage flag is present [#1207]. (@BenoitAverty)
Since coverage doesn't work well with watch mode, we don’t run the watcher on
npm test -- --coverage
anymore. -
#1212 Proxy rewrites Origin header to match the target server URL. (@koles)
Makes sure more API endpoints can work with the
proxy
setting. -
#1222 Disable gh-page setup instruction if scripts.deploy has been added. (@n3tr)
Suppresses the instructions printed at the end of
npm run build
ifnpm run deploy
already exists.
-
-
create-react-app
-
#1236 Tweak console messages. (@gaearon)
Makes error messages more friendly.
-
#1195 Use "commander" for cli argv handling. (@EnoahNetzach)
Adds
create-react-app --help
with a list of options.
-
-
react-dev-utils
-
react-dev-utils
- #1232 [documentation] fix html-dev-plugin link in react-dev-utils doc. (@shogunsea)
-
react-scripts
-
react-scripts
- #1214 Bump babel-eslint version. (@existentialism)
- Benoit Averty (BenoitAverty)
- Brian Ng (existentialism)
- Dan Abramov (gaearon)
- Dave Baskin (dfbaskin)
- Fabrizio Castellarin (EnoahNetzach)
- Jirat Ki. (n3tr)
- Joe Haddad (Timer)
- Pavel Kolesnikov (koles)
- Shogun Sea (shogunsea)
- Ville Immonen (fson)
Inside any created project that has not been ejected, run:
npm install --save-dev --save-exact [email protected]
You may also optionally update the global command-line utility:
npm install -g [email protected]
-
create-react-app
-
react-scripts
-
#1203 Update webpack-subresource-integrity to fix Windows builds. (@gaearon)
Fixes a crash when running
npm run build
on Windows. -
#1201 Instruct Jest to load native components from RNW instead of RN. (@remon-georgy)
Fixes tests for users of React Native Web.
-
-
react-scripts
- #806 Add syntax highlighting configuration guide. (@mareksuscak)
- Dan Abramov (gaearon)
- Marek Suscak (mareksuscak)
- Remon Georgy (remon-georgy)
Inside any created project that has not been ejected, run:
npm install --save-dev --save-exact [email protected]
You can optionally update the global CLI too:
npm install -g [email protected]
-
react-scripts
-
#1176 Add Subresource Integrity support. (@XVincentX)
The generated HTML now includes Subresource Integrity attributes ensuring that your users aren't served malicious code if your CDN gets compromised.
-
-
react-scripts
-
#1197 Let Jest handle all file types. (@gaearon)
Since 0.8.0, we started treating imports of any unknown file extensions as URLs. However, we had to revert this change for the test configuration in 0.8.1 because of a bug causing false positives. In 0.8.2, we are fixing this and making test configuration treat imports with unknown extensions the same way as we do in the browser environment.
-
#1194 Only honor relative
NODE_PATH
. (@gaearon)Historically we have allowed specifying
NODE_PATH
environment variable as a way to allow “absolute imports”. For example, runningNODE_PATH=src npm start
in Bash orset NODE_PATH=src&&npm start
in Windows Cmd would let you import anything insidesrc
without specifying a relative path. However, we found a few nasty edge cases when Node.js core modules end up being inNODE_PATH
and erroneously become bundled. As a result the build would crash on some systems when some libraries are imported. To fix this, we now only honor relative paths fromNODE_PATH
in Create React App. This means the existing use case for absolute imports is still supported (src
in the example above is relative), but absolute paths inNODE_PATH
(such as paths to Node.js core modules) will be ignored. -
#1188 Update Webpack to fix source map issues. (@gaearon)
Since 0.8.0, we show source maps in development instead of the compiled code. However, it has come to our attention that Webpack's source map implementation had issues interpreting Babel output, and caused source maps to be wrong and breakpoints to be unusable in some cases. Webpack has released a fix for this, and we have updated the minimal version of Webpack that we are using.
-
#1180 Use
file-loader
for svgs. (@bogdansoare)Since 0.8.0, we are treating all imports with non-JS/CSS extensions the same way. Importing them gives you a string with their URL, and if their content is small enough (less than 10K), the URL is in fact an inlined data URI. However, this doesn't work well with SVGs in case you use them for a sprite system since fragments don't work in data URIs, and it's wasteful to inline the same sprite SVG many times. To fix this, we have added an exception so that SVG files never get inlined.
-
-
react-dev-utils
-
babel-preset-react-app
-
eslint-config-react-app
-
#1191 Relax peerDependencies for ESLint preset. (@gaearon)
This allows the preset to be used in more apps without peer dependency conflicts. We still pin the exact versions in apps that haven't ejected for extra safety.
-
#1159 Make jsx-no-undef rule an error. (@existentialism)
Using an undefined type in JSX is now treated as a hard lint error because it is guaranteed to crash application at runtime.
-
-
react-scripts
-
#1175 Remove path module from webpack config on eject. (@harunhasdal)
This makes the output after ejecting a bit cleaner.
-
#1120 Add
testURL
to Jest config. (@spudly)This fixes an error when running tests that interact with History API in jsdom.
-
react-scripts
- #1143 Add deploy to Firebase CDN on template's README (Closes #374). (@guilhermebruzzi)
- #1099 Fix minor typo/grammar. (@alex-wilmer)
- #1168 Add "npm run build silently fails" to Troubleshooting. (@gaearon)
- Alex Wilmer (alex-wilmer)
- Bogdan Soare (bogdansoare)
- Brian Ng (existentialism)
- Dan Abramov (gaearon)
- Fabrizio Castellarin (EnoahNetzach)
- Guilherme Heynemann Bruzzi (guilhermebruzzi)
- Harun (harunhasdal)
- James Newell (jameslnewell)
- Jirat Ki. (n3tr)
- Li Xuanji (zodiac)
- Stephen John Sorensen (spudly)
- Vincenzo Chianese (XVincentX)
Inside any created project that has not been ejected, run:
npm install --save-dev --save-exact [email protected]
Thanks to @fson for cutting this release.
react-scripts
Inside any created project that has not been ejected, run:
npm install --save-dev --save-exact [email protected]
Thanks to @fson for cutting this release.
-
react-scripts
-
#944 Crash the build during CI whenever linter warnings are encountered. (@excitement-engineer)
Linter warnings and errors are now checked during a continuous integration build (set by the
CI
environment variable) and the build will fail if any issues are found. See Continuous Integration for more information.
-
-
create-react-app
,react-scripts
-
Yarn is a new fast, reliable and secure alternative to the
npm
client. If you have Yarn installed,create-react-app
will use it to install packages when you create an app. It also creates ayarn.lock
file that should be checked into source control (e.g. git). This ensures the same versions of packages will be installed each timeyarn install
is run, on any machine.react-scripts
now also displays instructions usingyarn
commands for projects using Yarn (projects having ayarn.lock
file).To create a project using Yarn, simply install
yarn
and usecreate-react-app
like before:npm install -g yarn create-react-app@latest create-react-app my-app # Packages are now installed with Yarn.
-
-
babel-preset-react-app
-
#902 Enable useBuiltIns option on object-rest-spread. (@existentialism)
Object rest spread and JSX now use the native
Object.assign()
method instead of Babel's helper function. If you are usingbabel-preset-react-app
directly in your project and targeting browsers that don't haveObject.assign()
available, from now on you need a polyfill for it (e.g.object-assign
).Note:
react-scripts
already adds this polyfill, so no changes are necessary in Create React App projects.
-
-
react-scripts
-
#978 Move the remove-on-eject-end tag at the end of the file. (@EnoahNetzach)
Fixes a bug in ejected configuration.
-
#1017 Don't look for
.babelrc
file during test. (@nhajidin)Fixes a
.babelrc
file in a parent directory interfering with thenpm test
command. -
#951 Check for presence of folders before continuing eject. (@heldinz)
Fixes a bug where
eject
failed when ascripts
orconfig
folder already existed in the project.
-
-
react-dev-utils
-
#1035 Fix Chrome tab reuse. (@einarlove)
Fixes a bug with the app not opening in the existing tab in Chrome.
-
#964 Catch and noop call to open web browser. (@spadin)
Not being able to open a browser doesn't crash the development server now.
-
-
eslint-config-react-app
,react-scripts
-
react-scripts
-
#1059 Use
url-loader
with limit 10k as a default loader. (@bebbi)react-scripts
now treats imports with any unknown file extension as a resource. Files with a size below 10 KB are inlined using a data URI and larger files copied to the build folder. This removes the need for an internal whitelist of supported file extensions. Any file that's not JS or CSS is now handled the same way. -
#924 Enable JavaScript source maps in development. (@ekaradon)
-
#1058 Add missing dev argument in build script message. (@nhajidin)
-
#961 Add
collectCoverageFrom
option to collect coverage on files without any tests. (@pmackcode)The test script now considers all files in the project when calculating test coverage.
-
#968 Enable gzip compression in the development server (#966). (@frontsideair)
-
react-dev-utils
,react-scripts
-
#816 add logging of existing default port process on start. (@ianmcnally)
react-scripts
can guess which process is running on the port 3000 when it's not available:Something is already running on port 3000. Probably: my-app in /Users/ian/dev/my-app Would you like to run the app on another port instead?
-
-
react-dev-utils
- #963 Allow webpack 2 as a peerDependency in react-dev-utils. (@einarlove)
react-scripts
- #1126 Add a note about vscode-jest. (@orta)
- #1080 Add a note for OSX users about watchman and jest. (@dmr)
- #1071 Adds to docs - deployment with S3/CloudFront. (@marcgarreau)
- #976 Added info on using global variables. (@jhorneman)
- #996 Remove redundant
function
from export statement. (@gnowoel) - #959 Always build before deploying to gh-pages. (@dsernst)
- #974 Gently nudge users towards https by default. (@Swizec)
- Other
- #1031 No Configuration -> Convention over Configuration. (@sheerun)
- #995 Add Gatsby to alternatives. (@KyleAMathews)
react-scripts
babel-preset-react-app
- Adam Stankiewicz (sheerun)
- Alice Rose (heldinz)
- Arunoda Susiripala (arunoda)
- Brian Ng (existentialism)
- Daniel Rech (dmr)
- Dave Ceddia (dceddia)
- David Ernst (dsernst)
- Dirk-Jan Rutten (excitement-engineer)
- Einar Löve (einarlove)
- Fabrizio Castellarin (EnoahNetzach)
- Fatih (frontsideair)
- Ian McNally (ianmcnally)
- Jurie Horneman (jhorneman)
- Kyle Mathews (KyleAMathews)
- Leo Wong (gnowoel)
- Marc Garreau (marcgarreau)
- Nazim Hajidin (nhajidin)
- Orta (orta)
- Patrick Mackinder (pmackcode)
- Sandro Padin (spadin)
- Sathish (bboysathish)
- Stefan (bebbi)
- Swizec Teller (Swizec)
- Vadzim (vadzim)
- Vesa Laakso (valscion)
- Ville Immonen (fson)
- ekaradon
You may optionally update the global command (it’s not required, but it adds Yarn support for new projects):
npm install -g [email protected]
Inside any created project that has not been ejected, run:
npm install --save-dev --save-exact [email protected]
Thanks to @fson for cutting this release.
- 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
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