Advanced Configuration

You can adjust various development and production settings by setting environment variables in your shell or with .env.

Note: You do not need to declare REACT_APP_ before the below variables as you would with custom environment variables.

VariableDevelopmentProductionUsage
BROWSERβœ… Used🚫 IgnoredBy default, Create React App will open the default system browser, favoring Chrome on macOS. Specify a browser to override this behavior, or set it to none to disable it completely. If you need to customize the way the browser is launched, you can specify a node script instead. Any arguments passed to npm start will also be passed to this script, and the url where your app is served will be the last argument. Your script's file name must have the .js extension.
BROWSER_ARGSβœ… Used🚫 IgnoredWhen the BROWSER environment variable is specified, any arguments that you set to this environment variable will be passed to the browser instance. Multiple arguments are supported as a space separated list. By default, no arguments are passed through to browsers.
HOSTβœ… Used🚫 IgnoredBy default, the development web server binds to all hostnames on the device (localhost, LAN network address, etc.). You may use this variable to specify a different host.
PORTβœ… Used🚫 IgnoredBy default, the development web server will attempt to listen on port 3000 or prompt you to attempt the next available port. You may use this variable to specify a different port.
HTTPSβœ… Used🚫 IgnoredWhen set to true, Create React App will run the development server in https mode.
PUBLIC_URL🚫 Ignoredβœ… UsedCreate React App assumes your application is hosted at the serving web server's root or a subpath as specified in package.json (homepage). Normally, Create React App ignores the hostname. You may use this variable to force assets to be referenced verbatim to the url you provide (hostname included). This may be particularly useful when using a CDN to host your application.
CIβœ… Usedβœ… UsedWhen set to true, Create React App treats warnings as failures in the build. It also makes the test runner non-watching. Most CIs set this flag by default.
REACT_EDITORβœ… Used🚫 IgnoredWhen an app crashes in development, you will see an error overlay with clickable stack trace. When you click on it, Create React App will try to determine the editor you are using based on currently running processes, and open the relevant source file. You can send a pull request to detect your editor of choice. Setting this environment variable overrides the automatic detection. If you do it, make sure your systems PATH environment variable points to your editor’s bin folder. You can also set it to none to disable it completely.
CHOKIDAR_USEPOLLINGβœ… Used🚫 IgnoredWhen set to true, the watcher runs in polling mode, as necessary inside a VM. Use this option if npm start isn't detecting changes.
GENERATE_SOURCEMAP🚫 Ignoredβœ… UsedWhen set to false, source maps are not generated for a production build. This solves out of memory (OOM) issues on some smaller machines.
NODE_PATHβœ… Usedβœ… UsedSame as NODE_PATH in Node.js, but only relative folders are allowed. Can be handy for emulating a monorepo setup by setting NODE_PATH=src.
INLINE_RUNTIME_CHUNK🚫 Ignoredβœ… UsedBy default, Create React App will embed the runtime script into index.html during the production build. When set to false, the script will not be embedded and will be imported as usual. This is normally required when dealing with CSP.
IMAGE_INLINE_SIZE_LIMIT🚫 Ignoredβœ… UsedBy default, images smaller than 10,000 bytes are encoded as a data URI in base64 and inlined in the CSS or JS build artifact. Set this to control the size limit in bytes. Setting it to 0 will disable the inlining of images.
EXTEND_ESLINTβœ… Usedβœ… UsedWhen set to true, ESLint configs that extend eslint-config-react-app will be used by eslint-loader. Any rules that are set to "error" will stop the application from building.
TSC_COMPILE_ON_ERRORβœ… Usedβœ… UsedWhen set to true, you can run and properly build TypeScript projects even if there are TypeScript type check errors. These errors are printed as warnings in the terminal and/or browser console.
Last updated on 10/14/2019 by Jesse Jackson