React - Access Environment Variables from dotenv (.env)
This is a quick tutorial on how to create and access environment variables in React with a dotenv (.env) file.
React apps built with Create React App support dotenv environment variables out of the box, so all you need to do is add a .env file to the root folder of your React project.
To generate a React project with Create React App run the command npx create-react-app <project name>, the tool is also used to build and serve the application. For more info about Create React App see https://create-react-app.dev/.
How to make env variables accessible to the React client app
There's only one gotcha, to access environment variables from the client app they must be prefixed with REACT_APP_. Otherwise they will only be accessible on the server side.
You can access environment variables (with the REACT_APP_ prefix) from your React app via the Node.js process.env. object. For example const myVar = process.env.REACT_APP_MY_VAR;.
React env variable example on StackBlitz
Here's an example React app that contains a couple of environment variables. It shows that the env variable prefixed with REACT_APP_ is accessible to the App component and the server side only variable is not.
(See on StackBlitz at https://stackblitz.com/edit/react-access-environment-variables-from-dotenv)
Example dotenv (.env) file
The dotenv file from the example app. It defines two environment variables, the one prefixed with REACT_APP_ is accessible to the React client app, and the one without the prefix is only accessible to server side code.
# variables prefixed with REACT_APP_ are accessible from the react client app REACT_APP_MY_ENV_VARIABLE=environemnt variable value from .env file # variables without the REACT_APP_ prefix are NOT accessible from the react client app SERVER_SIDE_ONLY_VAR=this can't be accessed on the client React App Component
The App component attempts to display both environment variables, but only has access to the one prefixed with REACT_APP_.
It accesses variables in the .env file with the Node.js object process.env.
export default function App() { return ( <div class="card m-3"> <h5 class="card-header">React - Access Environment Variables from dotenv (.env)</h5> <div class="card-body"> <p>REACT_APP_MY_ENV_VARIABLE: {process.env.REACT_APP_MY_ENV_VARIABLE}</p> <p>SERVER_SIDE_ONLY_VAR: {process.env.SERVER_SIDE_ONLY_VAR}</p> </div> </div> ); } For more info on using environment variables in a React app built with Create React App see https://create-react-app.dev/docs/adding-custom-environment-variables/.
Need Some React Help?
Search fiverr for freelance React developers.
Follow me for updates
When I'm not coding...
Me and Tina are on a motorcycle adventure around Australia.
Come along for the ride!