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!